Question

J'ouvre donc un terminal, un cd sur mon bureau et lance:

virtualenv test_env

Je crée ensuite le fichier suivant dans mon environnement normal:

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

Ce fichier contient une ligne:

print " importation depuis env. normal & <; code>

Dans le test_env je crée:

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

Contenant:

print " importation à partir de test env "

Maintenant, j'ouvre un terminal et lance:

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

Et ensuite faire:

> > > importer foo_package

Quelles sorties:

important à partir d'env normal

Pourquoi le fichier n'est-il pas importé de test_env? Je pensais que c’était l’intérêt de virtualenv. Est-ce que je manque quelque chose ici?

Modifier: Jon H m'a informé que je devais activer l'environnement. Mais cela ne semble pas résoudre le problème ...

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
>>> 

Utiliser Ubuntu 9.04 / Python 2.6.2 / virtualenv 1.33 au cas où cela serait pertinent.

Modifier 2: Haes m'a demandé ce que sys.path contenait dans mon environnement virtuel ...

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

Sortie: ['', '/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-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. 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/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-tk ',' / 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 ',' /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 ']

Modifier 3: J'ai constaté ceci: https://bugs.launchpad.net/ubuntu/+source/python-virtualenv/+bug/339904 Apparemment, il y a des problèmes avec virtualenv + python 2.6 + ubuntu 9.04. Je ne suis pas sûr que cela soit lié à mon problème ... J'ai essayé de désinstaller le paquet python-virtualenv via Synaptic puis d'installer la version 1.3.4 de virtualenv via easy_install, mais le problème persiste ...

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']

Cela ressemble à un pas en avant, car des éléments test_env apparaissent dans le chemin, mais ne fonctionnent toujours pas. Je pense que mon problème actuel est que '/home/jesse/.local/lib/python2.6/site-packages' se produit dans le chemin précédant '/home/jesse/Desktop/test_env/lib/python2.6/site-packages '

Éditer 4: Roger a suggéré de créer env avec l'option --no-site-packages. J'ai essayé ça. Même problème.

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']
>>> 

Là encore, il semble que le problème réside dans les packages de site de mon " lieu .local " apparaît plus tôt dans le chemin que les packages de site de "test_env".

Était-ce utile?

La solution

Vous rencontrez un bogue dans virtualenv. Il n'a pas encore été mis à jour pour gérer correctement les répertoires .local. J'ai classé un problème à ce sujet à la suivi des bogues .

UPDATE : ce bogue est maintenant corrigé . dans virtualenv 1.4.2 et versions ultérieures.

Autres conseils

D'après les étapes que vous avez mentionnées, il semble que vous n'ayez pas activé l'environnement virtuel. Faire:

source bin/activate

.. dans le virtualenv que vous avez créé. Vous devriez voir quelque chose comme:

(test_env)computername:foldername$

Exécuter python à partir d’ici devrait obtenir votre version de virtualenv.

Sans cette étape, votre installation Python par défaut sera toujours utilisée.

Modifier: la publication au-dessus de moi est correcte, vous avez oublié d'activer. En utilisant virtualenvwrapper, je n’ai jamais vraiment fait cette étape, donc mon mal:)

En regardant cela, on dirait que vous faites tout bien mais je voudrais faire une suggestion au cas où vous n'en auriez jamais entendu parler: virtualenvwrapper rend le travail avec virtualenv beaucoup plus rapide et plus simple. Ce serait peut-être amusant d'essayer et de voir si vous rencontrez toujours le même problème. Peut-être trouverez-vous ce qu'il vous manquait.

Et vous devez créer l'environnement virtuel avec l'option --no-site-packages

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top