Pergunta

Então eu abrir um terminal, cd para o meu desktop, e executar:

virtualenv test_env

Eu, então, criar o seguinte arquivo no meu ambiente normal:

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

Este arquivo contém uma linha:

print "importing from normal env"

No test_env eu crio:

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

Contendo:

print "importing from test env"

Agora eu abro uma corrida terminal e:

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

E, em seguida, fazer:

>>> import foo_package

Que resultados:

importing from normal env

Por que não é mesmo importar o arquivo de test_env? Eu pensei que era o ponto inteiro de virtualenv. Estou faltando alguma coisa aqui?

Editar: Jon H informou-me que eu preciso ativar o ambiente. Mas isso não parece resolver o 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
>>> 

Usando Ubuntu 9.04 / Python 2.6.2 / virtualenv 1,33 no caso em que é relevante.

Editar 2: Haes me perguntou o que sys.path estava na minha 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

Saída: [ '', '/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 / / lib locais /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. ovo ' '/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 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 ']

Editar 3: Eu encontrei este: https://bugs.launchpad.net/ubuntu/+source/python-virtualenv/+bug/339904 Aparentemente, há alguns problemas com virtualenv + Python 2.6 + ubuntu 9.04. Não tenho certeza se isso está relacionado com o meu problema ... Eu tentei desinstalar o pacote python-virtualenv via Synaptic e, em seguida, instalar a versão 1.3.4 do virtualenv via easy_install, mas ainda tem o mesmo 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']

Isto parece um passo em frente, porque o material test_env está aparecendo no caminho, mas ainda não está funcionando. Eu acho que o meu problema atual é que '/home/jesse/.local/lib/python2.6/site-packages' ocorre no caminho antes de '/home/jesse/Desktop/test_env/lib/python2.6/site-packages '

Editar 4: Roger sugeriu a criação do env com a opção --no-site-packages. Tentei fazer isso. Mesmo 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']
>>> 

Mais uma vez, parece que o problema é o site de pacotes no meu ".local" aparece no início do caminho do que os site-packages em 'test_env'.

Foi útil?

Solução

Você está correndo em um bug no virtualenv. Ele ainda não foi atualizado para lidar com diretórios .local corretamente. Eu arquivado um problema para isso no bug tracker .

Atualizar : este bug agora é fixo em virtualenv 1.4.2 e posterior.

Outras dicas

A partir dos passos que você mencionou, parece que você não tenha ativado o env virtual. Fazer:

source bin/activate

.. dentro do virtualenv você criou. Você deve ver algo como:

(test_env)computername:foldername$

Running python a partir daqui deve obter a sua versão virtualenv.

Sem essa etapa ainda vai usar a sua instalação padrão Python.

Editar: Post acima de mim está correta, você se esqueceu de ativar. Usando virtualenvwrapper Eu realmente nunca fiz isso passo para o meu mau:)

Olhando para isso, parece que você está fazendo tudo certo, mas eu gostaria de fazer uma sugestão no caso de você nunca ouviu falar dele: virtualenvwrapper torna o trabalho com virtualenv muito mais rápido e mais fácil. Poderia ser divertido para experimentá-lo e ver se você ainda obter o mesmo problema, talvez você vai encontrar o que você estava faltando.

E o que você precisa para criar o ambiente virtual com a opção --no-site-pacotes

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top