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:
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 " ;.
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