【发布时间】:2020-01-24 19:52:16
【问题描述】:
上周我有一个用于项目的工作 conda env。我已经一周没有碰过这个项目了。我只是去运行一个运行没有错误的python文件(python file.py)。
现在我收到以下错误:
Traceback (most recent call last):
File "file.py", line 2, in <module>
from torch.utils.data import Dataset, DataLoader
ModuleNotFoundError: No module named 'torch'
为了排除故障,我打开了一个 python 控制台并运行了以下代码:
>>> import torch
结果是以下错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'torch'
如果我使用 conda list -n <env_name> 检查所有已安装的软件包,我可以看到 PyTorch 实际上已安装,就像上周一样。
...
pytorch 1.2.0 py3.7_cuda9.2.148_cudnn7.6.2_0 pytorch
...
torchvision 0.4.0 py37_cu92 pytorch
...
这是我使用 python 启动 python 控制台时看到的:
Python 3.7.4 (default, Aug 13 2019, 20:35:49)
[GCC 7.3.0] :: Anaconda, Inc. on linux
python -c 'import sys; print(sys.path) 在基础环境中的输出是:
['', '/home/<name>/anaconda3/lib/python37.zip', '/home/<name>/anaconda3/lib/python3.7', '/home/<name>/anaconda3/lib/python3.7/lib-dynload', '/home/<name>/anaconda3/lib/python3.7/site-packages']我个人没有对PYTHONPATH进行任何更改。
如果我在 conda env(非基础)活动的情况下运行 python -c 'import sys; print(sys.path)',我会得到:
['', '/home/<name>/anaconda3/envs/<env_name>/lib/python37.zip', '/home/<name>/anaconda3/envs/<env_name>/lib/python3.7', '/home/<name>/anaconda3/envs/<env_name>/lib/python3.7/lib-dynload', '/home/<name>/anaconda3/envs/<env_name>/lib/python3.7/site-packages']
这太奇怪了,如果我不接触代码或对 Anaconda 进行任何更改,就无法弄清楚上周发生了什么,以及可能发生的事情。
【问题讨论】:
-
你确定你不在基础环境中,即你是否激活了环境?
-
是的,我实际上有三个环境都安装了 pytorch 和 torchvision,它们都不能正常工作。
-
您是否有一个
environment.yml文件,可以将其与conda env export > environment.yml的输出进行比较,看看可能有什么变化? -
@merv 我从自定义环境和基本 conda 环境中运行了您建议的命令,并将输出添加到问题中。
-
是的,但只有在采取下列步骤之后。几周前我很难理解一切是如何工作的,然后这周就停止了工作,而我在这之间没有做任何改变。
标签: python python-3.x anaconda pytorch conda