我正在运行这样的Virtualenv:
$ virtualenv --no-site-packages venv
New python executable in .../venv/bin/python
Installing setuptools, pip, wheel...done.
$ source venv/bin/activate
但是当我pip freeze -l
时,我什么也得不到。所以我仔细检查了我的PYTHONPATH:
$ python
import sys
for i in sys.path:
... print i
这给出了这个输出:
/home/...
/usr/local/lib/python2.7/site-packages
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/site-packages
/usr/lib/python2.7/dist-packages
/home/.../venv/lib/python2.7
/home/.../venv/lib/python2.7/plat-x86_64-linux-gnu
/home/.../venv/lib/python2.7/lib-tk
/home/.../venv/lib/python2.7/lib-old
/home/.../venv/lib/python2.7/lib-dynload
/usr/lib/python2.7
/usr/lib/python2.7/plat-x86_64-linux-gnu
/usr/lib/python2.7/lib-tk
/home/.../venv/local/lib/python2.7/dist-packages
/home/.../venv/lib/python2.7/site-packages
/home/.../venv/local/lib/python2.7/dist-packages
在目录中,我使用...
来表示项目/工作目录的路径。
在我看来,我真正需要做的是确保在我的虚拟环境中,/usr/
路径不显示。但是我该怎么做呢?如何清除这些无关的路径?
答案 0 :(得分:0)
我不知道这是否是一个很好的解决办法,但我在.bashrc中找到了一些陈述:
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages
export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/site-packages
export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages
我注释掉了,然后这些路径不再显示在sys.path
中。现在我的virtualenv工作正常,但我很想知道为什么这实际上解决了这个问题。
答案 1 :(得分:0)
basrc用于在引导系统/启动终端会话时配置环境。因此,例如,您不必在每次启动新的终端会话时手动进行配置(例如pythonpath或某些方便的命令行别名)。 每次启动新会话时,都将重新创建PYTHONPATH环境变量,直到您从bashrc中将它们注释掉为止,此时,一旦取消设置PYTHONPATH,它便保持为空。是的,这是一个很好的解决方案。 :)