用了screen后,同样环境同样命令下出现No module named XXX
问题描述:
用screen之前,可以正常运行。
使用screen之后,出现Error:
ModuleNotFoundError: No module named 'torch'
原因分析:
在screen后的窗口中输入which python,得到如下结果:
(spadn) [email protected]:~XXX/DeblurGAN-master/OneNet$ which python
/home/XXX/anaconda3/envs/tfdpdnn/bin/python
可见,明明应该是spadn下的环境,却进入了tfdpdnn的环境。tfdpdnn是装的tensorflow, 故没有pytorch模块。
解决方法:
法1(比较蠢):
将想要使用的那个环境(本文中是spadn)下的python文件(名字一般是python3.6)改成一个比较奇怪的名字,不和tfdpdnn环境下的Python文件重名。例如,改为pyth0n,运行程序时也在命令行中运行:
pyth0n main.py
即可。
虽然的确可以使程序正常运行,但这样若输入nvidia-smi,会出现如下结果:
好蠢好蠢
方法2
暂时还没有更好的方法,网上的很多方法也无效。待续。