我遇到了一个问题,在 virtualenv 中 python
找不到 pip 安装的模块。
我已经缩小范围,发现当我的 virtualenv 激活时调用 python
时,它仍然会到达 /usr/bin/python
而不是 /home/liam/dev/.virtualenvs/noots/bin/python
.
当我在 virtualenv 中使用 which python
时,我得到:
/home/liam/dev/.virtualenvs/noots/bin/python
当我在 virtualenv 中查找我的 $PATH
变量时,我得到:
bash:/home/liam/dev/.virtualenvs/noots/bin:/home/liam/bin:/home/liam/.local/bin:/home/liam/bin:/home/liam/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin: 没有那个文件或目录
然而,当我实际运行 python
时,它会转到 /usr/bin/python
为了让我更困惑,如果我运行 python3.5
它会从正确的目录(即 /home/liam/dev/.virtualenvs/noots/bin/python3.5
)
无论如何我都没有碰过/home/liam/dev/.virtualenvs/noots/bin/
。 python
和 python3.5
仍然链接到该目录中的 python3
。遍历到 /home/liam/dev/.virtualenvs/noots/bin/
并运行 ./python
, ./python3
或 ./python3.5
一切正常
我正在使用 virtualenvwrapper
如果这会有所不同,但是问题似乎是最近发生的,在安装 virtualenv
和 virtualenvwrapper
很久之后/p>
最佳答案
我的问题是我最近移动我的带有 virtualenv 的项目到另一个位置,因为这个activate
脚本有错误 VIRTUAL_ENV
路径。
$ cat path_to_your_env/bin/activate
... # some declarations
VIRTUAL_ENV="/path_to_your_env/bin/python" # <-- THIS LINE
export VIRTUAL_ENV
... # some declarations
要解决此问题,只需更新 activate
脚本中的 VIRTUAL_ENV
。
此外,您可能需要修复 bin/pip
的第一行以链接到真正的 python 路径。
关于python - Virtualenv 使用了错误的 python,即使它位于 $PATH 中的第一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41524320/