2016-08-12 4 views
0

Ich bin ein virtualenv wie folgt ausgeführt werden:Virtualenv enthält globale Pakete/Wie lösche ich meinen PYTHONPATH?

$ virtualenv --no-site-packages venv 
New python executable in .../venv/bin/python 
Installing setuptools, pip, wheel...done. 
$ source venv/bin/activate 

Aber wenn ich pip freeze -l, ich habe nichts bekommen. Also ich doppelt überprüft meine PYTHONPATH:

$ python 
import sys 
for i in sys.path: 
...  print i 

Welche diesen Ausgang gab:

/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 

In den Verzeichnissen, habe ich ... den Weg zu meinem Projekt bezeichnen/Arbeitsverzeichnis.

Es scheint mir, dass ich wirklich sicherstellen muss, dass in meiner virtuellen Umgebung die /usr/ Pfade nicht angezeigt werden. Aber wie kann ich das tun? Wie lösche ich diese fremden Wege?

Antwort

0

Ich weiß nicht, ob dies eine gute Lösung ist, aber ich fand ein paar Aussagen in meinem .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 

Was ich aus kommentiert, und dann zeigte diese Wege nicht mehr in sys.path auf. Jetzt arbeitet mein virtualenv wie gewünscht, obwohl ich neugierig wäre zu verstehen, warum dies das Problem tatsächlich behebt.

Verwandte Themen