找不到在 virtualenv 中使用 PIP 安装的模块
Module installed with PIP in virtualenv not found
遇到一个非常严重的运行ge 错误。我正在制作一个虚拟环境并使用 pip requirements.txt 文件对其进行初始化,但是当我转到激活环境中的 运行 代码时,虚拟环境解释器声称缺少一些(并且只有一些)模块:
(venv) $ pip list
certifi (2017.7.27.1)
chardet (3.0.4)
decorator (4.1.2)
idna (2.5)
ipython (6.1.0)
ipython-genutils (0.2.0)
jedi (0.10.2)
numpy (1.13.1)
olefile (0.44)
pexpect (4.2.1)
pickleshare (0.7.4)
Pillow (4.2.1)
pip (9.0.1)
prompt-toolkit (1.0.15)
protobuf (3.3.0)
ptyprocess (0.5.2)
Pygments (2.2.0)
PyYAML (3.12)
pyzmq (16.0.2)
requests (2.18.3)
scipy (0.19.1)
setuptools (38.5.1)
simplegeneric (0.8.1)
six (1.10.0)
torch (0.2.0.post3)
torchvision (0.2.0)
tornado (4.5.1)
tqdm (4.15.0)
traitlets (4.3.2)
urllib3 (1.22)
visdom (0.1.5)
wcwidth (0.1.7)
wheel (0.30.0)
所以我仔细检查:
(venv) $ pip install tqdm
Requirement already satisfied: tqdm in ./venv/lib/python3.6/site-packages
(venv) $ python
Python 3.6.3 |Anaconda custom (64-bit)| (default, Oct 13 2017, 12:02:49)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from tqdm import tqdm
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'tqdm'
有人建议, using a different interpreter source, and just reinstalling. None of these have worked. this is very mysterious. Have any of you seen anything like this? Saw a similar unresolved problem here
更新:已修复。 H/T 感谢@Riverman 帮助我找到问题:问题是一个旧的未使用的别名是很久以前遗留下来的,虽然 pip 仍然有它自己的指向 python3.6, python 命令本身是我在某处放置的某个旧 Anaconda3 版本的别名。别名,我忘了,不要仅仅通过重新获取你的 .bashrc 文件就消失了,所以我 运行 unalias
使用令人讨厌的 python 命令并且它起作用了!
如果有人能解释为什么会发生这种情况,
仍然很乐意听取他们的意见。我虽然 venv 完全隔离了你与外部环境......是因为混叠是系统级效应所以它渗透到 venv 中吗??
您使用了 pip(为 Python 2.7 安装)并且您正试图在 Python3 中导入已安装的软件包,因此它无法工作。
你应该做 pip3 install package-name
。
pip3 为 Python3 安装。使用 apt-get install python3-pip
安装 pip3
它会起作用。
在 virtualenv 中,请发出以下命令:
- 点冻结
- pip -V
- python-V
- 哪个python
- 哪个点
在此处分享您的结果以进行分析。我之前也遇到过与 requests
包非常相似的问题,但这发生在 windows 上。
我有一个非常相似的问题:我在一个虚拟环境 (virtualenv) 上工作,并在这个环境中安装了 pandas:
pip3 install pandas
但是,当我在同样位于此虚拟环境中的 jupyter notebook 上使用命令导入此模块时:
import pandas as pd
我遇到了错误:
ModuleNotFoundError: No module named 'pandas'
最后,我注意到,即使我是从虚拟环境内部激活我的 jupyter notebook,我也是从虚拟环境外部打开 jupyter notebook(因为我还在所有虚拟环境之外安装了这个模块).我的解决方案是卸载虚拟环境之外的 jupyter,当我再次 运行 从所需环境中再次使用 juypter nb 时,一切正常。
遇到一个非常严重的运行ge 错误。我正在制作一个虚拟环境并使用 pip requirements.txt 文件对其进行初始化,但是当我转到激活环境中的 运行 代码时,虚拟环境解释器声称缺少一些(并且只有一些)模块:
(venv) $ pip list
certifi (2017.7.27.1)
chardet (3.0.4)
decorator (4.1.2)
idna (2.5)
ipython (6.1.0)
ipython-genutils (0.2.0)
jedi (0.10.2)
numpy (1.13.1)
olefile (0.44)
pexpect (4.2.1)
pickleshare (0.7.4)
Pillow (4.2.1)
pip (9.0.1)
prompt-toolkit (1.0.15)
protobuf (3.3.0)
ptyprocess (0.5.2)
Pygments (2.2.0)
PyYAML (3.12)
pyzmq (16.0.2)
requests (2.18.3)
scipy (0.19.1)
setuptools (38.5.1)
simplegeneric (0.8.1)
six (1.10.0)
torch (0.2.0.post3)
torchvision (0.2.0)
tornado (4.5.1)
tqdm (4.15.0)
traitlets (4.3.2)
urllib3 (1.22)
visdom (0.1.5)
wcwidth (0.1.7)
wheel (0.30.0)
所以我仔细检查:
(venv) $ pip install tqdm
Requirement already satisfied: tqdm in ./venv/lib/python3.6/site-packages
(venv) $ python
Python 3.6.3 |Anaconda custom (64-bit)| (default, Oct 13 2017, 12:02:49)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from tqdm import tqdm
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'tqdm'
有人建议
更新:已修复。 H/T 感谢@Riverman 帮助我找到问题:问题是一个旧的未使用的别名是很久以前遗留下来的,虽然 pip 仍然有它自己的指向 python3.6, python 命令本身是我在某处放置的某个旧 Anaconda3 版本的别名。别名,我忘了,不要仅仅通过重新获取你的 .bashrc 文件就消失了,所以我 运行 unalias
使用令人讨厌的 python 命令并且它起作用了!
如果有人能解释为什么会发生这种情况,
仍然很乐意听取他们的意见。我虽然 venv 完全隔离了你与外部环境......是因为混叠是系统级效应所以它渗透到 venv 中吗??
您使用了 pip(为 Python 2.7 安装)并且您正试图在 Python3 中导入已安装的软件包,因此它无法工作。
你应该做 pip3 install package-name
。
pip3 为 Python3 安装。使用 apt-get install python3-pip
安装 pip3
它会起作用。
在 virtualenv 中,请发出以下命令:
- 点冻结
- pip -V
- python-V
- 哪个python
- 哪个点
在此处分享您的结果以进行分析。我之前也遇到过与 requests
包非常相似的问题,但这发生在 windows 上。
我有一个非常相似的问题:我在一个虚拟环境 (virtualenv) 上工作,并在这个环境中安装了 pandas:
pip3 install pandas
但是,当我在同样位于此虚拟环境中的 jupyter notebook 上使用命令导入此模块时:
import pandas as pd
我遇到了错误:
ModuleNotFoundError: No module named 'pandas'
最后,我注意到,即使我是从虚拟环境内部激活我的 jupyter notebook,我也是从虚拟环境外部打开 jupyter notebook(因为我还在所有虚拟环境之外安装了这个模块).我的解决方案是卸载虚拟环境之外的 jupyter,当我再次 运行 从所需环境中再次使用 juypter nb 时,一切正常。