virtualenv 使用不正确 sys.path

virtualenv using incorrect sys.path

刚才一切正常。我不知道我做了什么惹恼了 virtualenv,但它现在表现得很奇怪。感谢任何帮助。

制作virtualenv时,我使用这个命令:

virtualenv -p /usr/bin/python3 venv

现在我看到我使用 pip install package 安装的软件包没有被 python 加载。它们通过 pip 正确安装到 venv/lib/python3.4/site-packages 目录中,但是我的 virtualenv 中的 python 没有在该目录中查找包。

在 Python:

import sys
sys.path
['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']

这是错误的!它使用了错误的路径,它至少应该包括

/myhomedir/venv/lib/python3.4/site-packages

这样我就可以导入我的包了。

其实在Python中打开了一个virtualenv:

import sys
sys.path.append("/myhomedir/venv/lib/python3.4/site-packages")
import package

有效!!

但我不想每次使用 Python 时都必须手动附加此路径。我做了一些让 sys.path 非常生气的事情,我不知道那是什么。

我只是 sudo apt-get updated 和 sudo apt-get upgraded 以确保这不是冲突...没有骰子。

可能相关:

我注意到我的 virtualenv 命令输出以下行:

Using base prefix '/usr'

我不记得以前发生过这种情况。然而,即使我执行了 virtualenv venv,(没有指定 Python 版本,并且该输出没有出现)我的 sys.path 仍然是错误的并且没有加载包。

有人想过吗?非常感谢帮助。

问题已解决...如果其他人遇到同样的问题,请发布结果。最严重的 PICNIC 错误。

在我的 .bashrc 文件中,我有一个别名 python=/usr/bin/python3

好吧,当我的 virtualenv 尝试执行 python 时,它被重新路由到 /usr/bin 而不是使用它的内部 python。