Pregunta

Entonces abro un terminal, cd a mi escritorio y ejecuto:

virtualenv test_env

Luego creo el siguiente archivo en mi entorno normal:

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

Este archivo contiene una línea:

print " importando desde env normal

En el test_env creo:

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

que contiene:

print " importando desde prueba env "

Ahora abro una terminal y ejecuto:

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

Y luego haz:

> > > importar foo_package

Qué resultados:

importando desde env normal

¿Por qué no importa el archivo de test_env? Pensé que ese era el objetivo de virtualenv. ¿Me estoy perdiendo algo aquí?

Editar: Jon H me informó que necesito activar el entorno. Pero esto no parece solucionar el problema ...

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

Uso de Ubuntu 9.04 / Python 2.6.2 / virtualenv 1.33 en caso de que sea relevante.

Edición 2: Haes me preguntó qué sys.path estaba en mi 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

Salida: ['', '/home/jesse/Desktop/test_env/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg', '/usr/local/lib/python2.6/dist- paquetes / 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-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 ',' /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 ']

Edición 3: Encontré esto: https://bugs.launchpad.net/ubuntu/+source/python-virtualenv/+bug/339904 Aparentemente hay algunos problemas con virtualenv + python 2.6 + ubuntu 9.04. No estoy seguro si eso está relacionado con mi problema ... Intenté desinstalar el paquete python-virtualenv a través de Synaptic y luego instalar la versión 1.3.4 de virtualenv a través de easy_install, pero aún tengo el mismo problema ...

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

Esto parece un paso adelante, porque las cosas de test_env están apareciendo en la ruta, pero aún no funciona. Creo que mi problema actual es que '/home/jesse/.local/lib/python2.6/site-packages' aparece en la ruta antes de '/home/jesse/Desktop/test_env/lib/python2.6/site-packages '

Edición 4: Roger sugirió crear el entorno con la opción --no-site-packages. Lo intenté Mismo problema.

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

Nuevamente, parece que el problema son los paquetes del sitio en mi " .local " aparece antes en la ruta que los paquetes del sitio en " test_env " ;.

¿Fue útil?

Solución

Te encuentras con un error en virtualenv. Todavía no se ha actualizado para manejar directorios .local correctamente. He presentado un problema para esto en el rastreador de errores .

ACTUALIZACIÓN : este error ahora está solucionado en virtualenv 1.4.2 y posterior.

Otros consejos

A partir de los pasos que mencionaste, parece que no has activado el env virtual. Hacer:

source bin/activate

.. dentro del virtualenv que creaste. Deberías ver algo como:

(test_env)computername:foldername$

La ejecución de python desde aquí debería obtener tu versión virtualenv.

Sin este paso, seguirá utilizando la instalación predeterminada de Python.

Editar: la publicación sobre mí es correcta, olvidó activarla. Usando virtualenvwrapper nunca he hecho ese paso, así que mi error :)

Mirando eso, parece que estás haciendo todo bien, pero me gustaría hacer una sugerencia en caso de que nunca hayas oído hablar de ella: virtualenvwrapper hace que trabajar con virtualenv sea mucho más rápido y fácil. Puede ser divertido probarlo y ver si aún tiene el mismo problema, tal vez encuentre lo que se estaba perdiendo.

Y necesita crear el entorno virtual con la opción --no-site-packages

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top