2015-11-18 10 views
9

Mein wesentliches Problem ist, dass ich nicht --no-site-packages zu "arbeiten" kann.Virtualenv, No-Site-Pakete, sys.path

Ich habe eine Reihe von Posts auf SO gelesen, einschließlich this post. Ich bin ein großer Ubuntu-Noob und nicht viel besser, wenn es darum geht, wie Python mit dem Betriebssystem interagiert.

Andere Beiträge vorgeschlagen, dass printenv würde PYTHONPATH angezeigt Wenn ich in meinem virtualenv bin, printenv nicht zur Liste erscheint „PYTHONPATH“, aber es ist durchaus möglich, dass das, was ich für eine bestimmte dir ist suchen sollte, dass ich nicht bewusst statt der Großbuchstaben.

Was ich jedoch festgestellt habe, ist, dass, wenn ich die Python-Shell innerhalb der Virtualenv ausführen, alle meine globalen Pakete aufgelistet sind.

Ich bin mir nicht sicher, ob dies ein Problem mit virtualenv, .bashrc, Ubuntu oder my brain ist. Jede Hilfe würde sehr geschätzt werden.

Wenn es eine Art, kenntnisreiche Seele gibt, die bereit ist, mir in einer Art Hin-und-her-Prozess zu helfen, wäre ich sehr dankbar. Ich habe keine meiner Ausgaben aufgelistet, weil ich ehrlich gesagt abgesehen von den oben genannten Punkten nicht ganz sicher bin, wo ich anfangen soll.

Bearbeiten als Reaktion auf Kommentare; UTC: 7.41 19 Nov 2015

Starten der Umgebung:

[email protected]:~/Dropbox/$$ P/...$ virtualenv --no-site-packages venv 
New python executable in venv/bin/python 
Installing setuptools, pip, wheel...done. 

die Umwelt gelangen:

[email protected]:~/Dropbox/$$ P/...$ source venv/bin/activate 
(venv)[email protected]:~/Dropbox/$$ P/...$ 

Systempakete:

(venv)[email protected]:~/Dropbox/$$ P/...$ pip freeze 
adium-theme-ubuntu==0.3.4 
apt-xapian-index==0.46 
beautifulsoup4==4.4.1 
bleach==1.4.2 
blinker==1.3 
cffi==1.1.2 
characteristic==14.3.0 
chardet==2.3.0 
colorama==0.3.3 
command-not-found==0.3 
.... 
virtualenv==13.1.2 
virtualenv-clone==0.2.6 
virtualenvwrapper==4.7.1 
wheel==0.26.0 
whitenoise==1.0.6 
xdiagnose==3.8.1 
zope.interface==4.1.2 
(venv)[email protected]:~/Dropbox/$$ P/...$ 

sys.path:

012.351.
(venv)[email protected]:~/Dropbox/$$ P/...$ python 
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload',  
'/home/notanambiturner/.local/lib/python2.7/site-packages', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client'] 
>>> 

Sie können deutlich sehen, dass Site-Pakete in sys.path enthalten ist, die super nervig ist.

Python3 scheint etwas besser, nicht, dass ich weiß, wie pip freeze mit, es zu benutzen (oder auch wenn ich kann):

(venv)[email protected]:~/Dropbox/$$ P/...$ python3 
Python 3.4.3+ (default, Oct 14 2015, 16:03:50) 
[GCC 5.2.1 20151010] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 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'] 
>>> 

Weiter bearbeiten. Mein mind is bottled weiter. UTC 08:00 19 Nov 2015

Weil ich ein Verschwörungstheoretiker bin, habe ich versucht, außerhalb von Dropbox ein Vent zu erstellen.

[email protected]:~$ source venv/bin/activate 
(venv)[email protected]:~$ pip freeze 
wheel==0.24.0 
(venv)[email protected]:~$ python 
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', 
'/home/notanambiturner/venv/lib/python2.7', 
'/home/notanambiturner/venv/lib/python2.7/plat-x86_64-linux-gnu', 
'/home/notanambiturner/venv/lib/python2.7/lib-tk', 
'/home/notanambiturner/venv/lib/python2.7/lib-old', 
'/home/notanambiturner/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/notanambiturner/venv/local/lib/python2.7/site-packages', 
'/home/notanambiturner/venv/lib/python2.7/site-packages'] 
    >>> 

Was ... das ... heck ...? Ich meine, das ist eine Art Fortschritt? Vielleicht gibt es etwas mit meinen Dateinamen (\ $ \ $ \ P /) zu tun, die Probleme verursachen? Von dem, was ich gelesen habe, solange ich sudo rm -rf venv es keinen Unterschied machen, dass ich virtualenv s im selben Verzeichnis zuvor erstellt und gelöscht habe. Ist das richtig?

Argh.

+3

Können Sie bitte die Umgebungen eingeben, führen Sie Python aus und führen Sie 'import sys; print (sys.path) 'in Python; Fügen Sie dann alle Eingaben und Ausgaben, die Sie erhalten haben, zu Ihrem Beitrag hinzu, indem Sie ihn bearbeiten? –

+1

Es ist meist verwandt, wie Sie für Ihre virtualenv aktivieren. Bitte posten Sie vollständige Befehle und deren Ausgabe, wie Sie sie ausführen. –

+0

Danke Leute! Ich kann dir nicht sagen, wie gut es ist, jemanden zu haben, der mir bei diesem super nervigen Problem hilft. Ich habe den Beitrag nach deinen Kommentaren bearbeitet. Danke für Ihre Hilfe! – NotAnAmbiTurner

Antwort

0

Es gibt einen Fehler bei der Verwendung von $ im Pfadnamen (zumindest unter Ubuntu).