python - Virtualenv 使用了错误的 python,即使它位于 $PATH 中的第一个

标签 python linux virtualenv virtualenvwrapper

我遇到了一个问题,在 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/pythonpython3.5 仍然链接到该目录中的 python3。遍历到 /home/liam/dev/.virtualenvs/noots/bin/ 并运行 ./python, ./python3 ./python3.5 一切正常

我正在使用 virtualenvwrapper 如果这会有所不同,但是问题似乎是最近发生的,在安装 virtualenvvirtualenvwrapper 很久之后/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/

相关文章:

linux - 使用 BASH 在不同的盒子上启动多个进程

linux - Bash 中带有变量的 If 语句

linux - 我下载了 libasound2-dev,但找不到源文件

python - python包的版本管理

python - 使用 pandastable 更新表内容(Python、tkinter)

python - Pandas 使用 groupby 结果修改列,同时忽略某些值

python - 非 ASCII 字符 '\x90' 在 vi​​rtualenv 中的 windows 上执行 pserve

python - source bin/activate 未更新提示 : Is my virtualenv really active? 如果不是,如何解决?

python - 创建注销用户可访问的 Graphite 烯突变 (Django)

python - 自定义属性的ListProperty