2016-08-12 54 views
0

我快VIRTUALENV这样的:Virtualenv包含全球套餐/我如何清除我的PYTHONPATH?

$ 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

我不知道这是一个很好的修复,但我发现在我的.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正在按照需要工作,但我很想知道为什么这会真正解决问题。