Frage

Also ich öffnen Sie ein Terminal, CD auf meinem Desktop, und führen Sie:

virtualenv test_env

ich dann erstellen Sie die folgende Datei in meiner normalen Umgebung:

/home/jesse/.local/lib/python2.6/site-packages/foo_package/__init__.py

Diese Datei enthält eine Zeile:

print "importing from normal env"

Im test_env ich erstellen:

/home/jesse/Desktop/test_env/lib/python2.6/site-packages/foo_package/__init__.py

mit:

print "importing from test env"

Jetzt öffne ich einen Terminal und führe:

$ /home/jesse/Desktop/test_env/bin/python

Und dann tun:

>>> import foo_package

Welche Ausgänge:

importing from normal env

Warum ist es nicht die Datei aus test_env importieren? Ich dachte, dass der ganze Sinn der virtualenv war. Bin ich etwas fehlt hier?

Edit: Jon H informierte mich, dass ich die Umwelt aktivieren müssen. Aber dies scheint nicht das Problem zu beheben ...

jesse@jesse-laptop:~/Desktop/test_env$ source bin/activate
(test_env)jesse@jesse-laptop:~/Desktop/test_env$ bin/python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo_package
importing from normal env
>>> 

Mit Ubuntu 9.04 / Python 2.6.2 / virtualenv 1,33 in dem Fall, dass relevant ist.

Edit 2: Haes fragte mich, was sys.path war in meinem virtualenv ...

jesse@jesse-laptop:~/Desktop/test_env$ source bin/activate
(test_env)jesse@jesse-laptop:~/Desktop/test_env$ bin/python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path

Ausgabe: [ '', '/Home/jesse/Desktop/test_env/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg', ‚/usr/local/lib/python2.6/dist- packages / eNUM-0.4.3-py2.6.egg ' '/usr/local/lib/python2.6/dist-packages/clonedigger-1.0.9_beta-py2.6.egg',' / usr / local / lib / python2.6 / dist-packages / ETS-3.2.0-py2.6.egg '' /usr/local/lib/python2.6/dist-packages/TraitsGUI-3.0.4-py2.6.egg ' '/usr/local/lib/python2.6/dist-packages/TraitsBackendWX-3.1.0-py2.6.egg',' /usr/local/lib/python2.6/dist-packages/TraitsBackendQt-3.1 0,0-py2.6.egg ' '/usr/local/lib/python2.6/dist-packages/yolk-0.4.1-py2.6.egg',' /usr/local/lib/python2.6 /dist-packages/pylint-0.18.0-py2.6.egg ' '/usr/local/lib/python2.6/dist-packages/logilab_astng-0.19.0-py2.6.egg',' / usr /local/lib/python2.6/dist-packages/logilab_common-0.39.0-py2.6.egg '' /usr/local/lib/python2.6/dist-packages/pudb-0.92.7-py2. 6.egg ' '/usr/local/lib/python2.6/dist-packages/Pygments-1.0-py2.6.egg',' /usr/local/lib/python2.6/dist-packages/ETSProjectTools- 0.5.1-py2.6.egg '' / usr / local / l ib / python2.6 / dist-packages / pydee-0.4.24-py2.6.egg '' /usr/local/lib/python2.6/dist-packages/visionegg-1.2.1-py2.6-linux -i686.egg ' '/usr/local/lib/python2.6/dist-packages/PyOpenGL-3.0.0c1-py2.6.egg',' /usr/local/lib/python2.6/dist-packages /Whoosh-0.2.6-py2.6.egg ' '/usr/local/lib/python2.6/dist-packages/pyinotify-0.8.6-py2.6.egg',' / usr / local / lib /python2.6/dist-packages/svgbatch-0.1.9-py2.6.egg‘, '/usr/local/lib/python2.6/dist-packages/pyglet-1.1.3-py2.6.egg' '/usr/local/lib/python2.6/dist-packages/lepton-1.0b2-py2.6-linux-i686.egg', ‚/usr/local/lib/python2.6/dist-packages/rope -0.9.2-py2.6.egg ' '/usr/local/lib/python2.6/dist-packages/simplejson-2.0.9-py2.6-linux-i686.egg',' / usr / local /lib/python2.6/dist-packages/pymunk-0.8.4-py2.6.egg '' /usr/local/lib/python2.6/dist-packages/cssutils-0.9.6-py2.6. Ei ' '/usr/local/lib/python2.6/dist-packages/Shapely-1.0.14-py2.6.egg',' /usr/local/lib/python2.6/dist-packages/sympy- 0.6.5-py2.6.egg '' /usr/local/lib/python2.6/dist-packages/virtualenvwra pper-1.20-py2.6.egg ' '/home/jesse/Desktop/test_env/lib/python2.6', '/home/jesse/Desktop/test_env/lib/python2.6/plat-linux2',' /home/jesse/Desktop/test_env/lib/python2.6/lib-tk ' '/home/jesse/Desktop/test_env/lib/python2.6/lib-old',' / home / jesse / Desktop / test_env /lib/python2.6/lib-dynload ' '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2',' /usr/lib/python2.6/lib- tk ' '/home/jesse/.local/lib/python2.6/site-packages', '/home/jesse/Desktop/test_env/lib/python2.6/site-packages',' / usr / local / lib / python2.6 / dist-Pakete, '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/Numeric', ‚/ usr / lib / python2 0,6 / dist-packages / PIL ' '/usr/lib/python2.6/dist-packages/gst-0.10', '/var/lib/python-support/python2.6',' / usr / lib / python2.6 / dist-packages / GTK-2,0' , '/var/lib/python-support/python2.6/gtk-2.0', ‚/usr/lib/python2.6/dist-packages/wx-2.8- gtk2-Unicode ']

Bearbeiten 3: ich diese gefunden: https://bugs.launchpad.net/ubuntu/+source/python-virtualenv/+bug/339904 Offenbar gibt es einige Probleme mit virtualenv + python 2.6 + ubuntu 9.04. Nicht sicher, ob das zu meinem Problem verwendet ist ... Ich habe versucht, das Python-virtualenv Paket über Synaptic zu deinstallieren und anschließend Version 1.3.4 von virtualenv über easy_install installieren, aber immer noch das gleiche Problem ...

jesse@jesse-laptop:~/Desktop/test_env$ source bin/activate
(test_env)jesse@jesse-laptop:~/Desktop/test_env$ bin/python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo_package
importing from normal env
>>> import sys
>>> print sys.path
['', '/home/jesse/Desktop/test_env/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg', '/home/jesse/Desktop/test_env/lib/python2.6', '/home/jesse/Desktop/test_env/lib/python2.6/plat-linux2', '/home/jesse/Desktop/test_env/lib/python2.6/lib-tk', '/home/jesse/Desktop/test_env/lib/python2.6/lib-old', '/home/jesse/Desktop/test_env/lib/python2.6/lib-dynload', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/home/jesse/.local/lib/python2.6/site-packages', '/home/jesse/Desktop/test_env/lib/python2.6/site-packages', '/usr/local/lib/python2.6/dist-packages/enum-0.4.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/clonedigger-1.0.9_beta-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/ETS-3.2.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/TraitsGUI-3.0.4-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/TraitsBackendWX-3.1.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/TraitsBackendQt-3.1.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/yolk-0.4.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/pylint-0.18.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/logilab_astng-0.19.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/logilab_common-0.39.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/pudb-0.92.7-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Pygments-1.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/ETSProjectTools-0.5.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/pydee-0.4.24-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/visionegg-1.2.1-py2.6-linux-i686.egg', '/usr/local/lib/python2.6/dist-packages/PyOpenGL-3.0.0c1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Whoosh-0.2.6-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/pyinotify-0.8.6-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/svgbatch-0.1.9-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/pyglet-1.1.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/lepton-1.0b2-py2.6-linux-i686.egg', '/usr/local/lib/python2.6/dist-packages/rope-0.9.2-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/simplejson-2.0.9-py2.6-linux-i686.egg', '/usr/local/lib/python2.6/dist-packages/pymunk-0.8.4-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/cssutils-0.9.6-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Shapely-1.0.14-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/sympy-0.6.5-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/virtualenvwrapper-1.20-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/virtualenv-1.3.4-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/enum-0.4.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/ETS-3.2.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/yolk-0.4.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Whoosh-0.2.6-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/pyinotify-0.8.6-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/pyglet-1.1.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/simplejson-2.0.9-py2.6-linux-i686.egg', '/usr/local/lib/python2.6/site-packages', '/usr/local/lib/python2.6/site-packages/gtk-2.0', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/Numeric', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/var/lib/python-support/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/var/lib/python-support/python2.6/gtk-2.0', '/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode']

Das sieht wie ein Schritt nach vorn, weil test_env Sachen im Weg erscheinen, aber es ist immer noch nicht funktioniert. Ich glaube, mein aktuelles Problem ist, dass ‚/home/jesse/.local/lib/python2.6/site-packages‘ kommt in dem Pfad vor ‚/home/jesse/Desktop/test_env/lib/python2.6/site-packages ‚

Bearbeiten 4: Roger schlug vor, die env mit der --no-site-packages Option zu schaffen. Ich habe versucht, dass. Das gleiche Problem.

jesse@jesse-laptop:~/Desktop/test_env$ source bin/activate
(test_env)jesse@jesse-laptop:~/Desktop/test_env$ bin/python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo_package
importing from normal env
>>> import sys
>>> sys.path
['', '/home/jesse/Desktop/test_env/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg', '/home/jesse/Desktop/test_env/lib/python2.6', '/home/jesse/Desktop/test_env/lib/python2.6/plat-linux2', '/home/jesse/Desktop/test_env/lib/python2.6/lib-tk', '/home/jesse/Desktop/test_env/lib/python2.6/lib-old', '/home/jesse/Desktop/test_env/lib/python2.6/lib-dynload', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/home/jesse/.local/lib/python2.6/site-packages', '/home/jesse/Desktop/test_env/lib/python2.6/site-packages']
>>> 

Auch hier sieht es aus wie das Problem ist die Website-Pakete in meinem „.local“ erscheint früher im Weg als die Website-Pakete in ‚test_env‘.

War es hilfreich?

Lösung

Sie laufen in einen Fehler in virtualenv. Es wurde noch nicht aktualisiert .local Verzeichnisse richtig zu handhaben. Ich habe ein Problem für diese bei der Bug-tracker .

UPDATE : diese Fehler ist nun behoben in virtualenv 1.4.2 und höher.

Andere Tipps

Von den Schritten, die Sie erwähnt, es scheint, dass Sie nicht die virtuelle env aktiviert haben. Do:

source bin/activate

.. innerhalb der virtualenv Sie erstellt. Sie sollten so etwas wie sehen:

(test_env)computername:foldername$

Beim Laufen Python von hier sollten Sie Ihre virtualenv Version.

Ohne diesen Schritt wird es noch Ihre Standard-Python-Installation verwendet werden.

Edit: Beitrag über mir richtig ist, vergessen Sie zu aktivieren. Mit virtualenvwrapper Ich habe nie wirklich diesen Schritt getan, um meine schlecht:)

an, dass Blick sieht es aus wie Sie alles richtig zu machen, aber ich möchte einen Vorschlag machen einhüllen Sie noch nie davon gehört haben: virtualenvwrapper macht mit virtualenv arbeitet so viel schneller und einfacher. Könnte Spaß machen, es zu versuchen und sehen, ob Sie immer noch das gleiche Problem bekommen, vielleicht finden Sie, was Sie fehlten.

Und Sie müssen die virtuelle Umgebung mit der Option --no-Website-Pakete erstellen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top