问题描述
今天在进行环境迁移的时候遇到这样一个问题
Traceback (most recent call last):
File "mist_v3.py", line 342, in <module>
config = init(epsilon=epsilon, steps=steps, mode=mode, rate=rate)
File "mist_v3.py", line 184, in init
model = load_model_from_config(config, ckpt_path).to(device)
File "mist_v3.py", line 53, in load_model_from_config
model = instantiate_from_config(config.model)
File "/home/visionx/EXT-3/qfy/project/mist/ldm/util.py", line 85, in instantiate_from_config
return get_obj_from_str(config["target"])(**config.get("params", dict()))
File "/home/visionx/EXT-3/qfy/project/mist/ldm/util.py", line 93, in get_obj_from_str
return getattr(importlib.import_module(module, package=None), cls)
File "/home/visionx/EXT-3/qfy/anaconda3/envs/mist/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/visionx/EXT-3/qfy/project/mist/ldm/models/diffusion/ddpmAttack.py", line 23, in <module>
from ldm.models.autoencoder import VQModelInterface, IdentityFirstStage, AutoencoderKL
File "/home/visionx/EXT-3/qfy/project/mist/ldm/models/autoencoder.py", line 6, in <module>
from taming.modules.vqvae.quantize import VectorQuantizer2 as VectorQuantizer
ModuleNotFoundError: No module named 'taming'
这是要安一下taming这个包的,而安装办法要通过源代码来实现,所以第一步是git clone下来源代码然后通过pip install -e .来进行安装 ,这个操作还是比较熟悉的,因为之前diffuser安装的时候也是同样的套路,二者有一个共通的地方,就是源码包需要包含setup.py文件,否则是无法通过pip install -e .来实现安装为库文件,供程序使用的。
但是这次,我使用pip install -e .安装的时候却出现了下面这个错误:
bash: /home/visionx/EXT-3/qfy/anaconda3/envs/mist/bin/pip: /home/visionx/anaconda3/envs/mist/bin/python: bad interpreter: No such file or directory
查了一下可以通过这种办法解决:
我不太清楚下面这个python路径是谁的,于是我先用base环境下的替代,没有成功。
甚至还是出现这个报错:
bash: /home/visionx/EXT-3/qfy/anaconda3/envs/mist/bin/pip: /home/visionx/anaconda3/envs/mist/bin/python: bad interpreter: No such file or directory
那可能base环境下的pip也不行?于是我又找了一个虚拟环境ldm的python解释器 来替代上图中红框蓝字部分,没有报“/home/visionx/anaconda3/envs/mist/bin/python: bad interpreter: No such file or directory”错,但是呢,又报了这个错:
***……
File "/home/visionx/EXT-3/qfy/project/mist/ldm/models/diffusion/ddpmAttack.py", line 23, in <module>
from ldm.models.autoencoder import VQModelInterface, IdentityFirstStage, AutoencoderKL
File "/home/visionx/EXT-3/qfy/project/mist/ldm/models/autoencoder.py", line 6, in <module>
from taming.modules.vqvae.quantize import VectorQuantizer2 as VectorQuantizer
ModuleNotFoundError: No module named 'taming'
这很明显是还不能,那是什么原因呢?我该怎么解决呢?
解决办法
我想到了之前diffuser安装的时候
第一步,把需要安装taming的虚拟环境mist迁移到anaconda3/envs目录下
cp -r mist/ /home/visionx/ananconda3/envs
这样的话可以用conda activate 进行激活,操作也更方便
第二步,激活mist虚拟环境
conda activate mist
第三步,进入到taming_transformers文件目录中,并执行pip操作
pip install -e .
执行完之后,再执行所需要的python文件就可以了,比如
python mist_v3.py
第四步:补充
如果一开始执行了这几条命令的话
which pip
/home/visionx/anaconda3/envs/mist/bin/pip
which python
/home/visionx/anaconda3/envs/mist/bin/python
vim /home/visionx/anaconda3/envs/mist/bin/pip
那需要把修改的内容改回原样,比如我的
vim /home/visionx/anaconda3/envs/mist/bin/pip
完活!
完结撒花
未来并不是无限可能,有她和没她两种罢了