刚才一切都运转良好,但我不知道我做了什么事情惹恼了virtualenv,现在它的行为非常奇怪。求助。
创建virtualenv时,我使用这个命令:
virtualenv -p /usr/bin/python3 venv
现在我发现使用pip install package
安装的包没有被Python加载。虽然这些包已经由pip正确安装到venv/lib/python3.4/site-packages目录下,但是我的虚拟环境中的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中:
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仍然不正确,包无法加载。
大家有什么想法吗?非常感谢帮助。
alias | grep python
命令检查 Python 是否被别名化,然后通过unalias python
命令取消别名。 - aydow