python - 虚拟环境的困惑

标签 python virtualenv

所以我打开一个终端,CD到我的桌面,然后运行:
virtualenv test_env
然后在正常环境中创建以下文件:
/home/jesse/.local/lib/python2.6/site-packages/foo_package/__init__.py
此文件包含一行:
print "importing from normal env"
在测试环境中,我创建:
/home/jesse/Desktop/test_env/lib/python2.6/site-packages/foo_package/__init__.py
包含:
print "importing from test env"
现在我打开一个终端运行:
$ /home/jesse/Desktop/test_env/bin/python
然后做:
>>> import foo_package
哪些输出:
importing from normal env
为什么不从test_env导入文件?我以为这就是virtualenv的全部意义。我是不是丢了什么东西?
编辑:乔恩H告诉我,我需要激活环境。但这似乎不能解决问题…

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

在相关的情况下使用Ubuntu 9.04/Python 2.62/ValueLeNV 1.33。
编辑2:海斯问我在我的虚拟机里有什么sys.path…
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

输出:
[“,”/“家庭/杰西/台式机/台式机/包/鸡蛋/蛋包”,“鸡蛋包装”,/usr/local/lib/python2.6/dist/dist/lib/python2.6/dist/tratspacka/tratsbackendwx-3.1.0-py2.6.6.egg,/usr/local/lib/python2.6/dist/tratsbackendwx-3.1.0-py2.6.6.egg,/usr/local/lib/python2.6/dist/dist/tratsbackendqt/tratsbackendqt/tratsbackendqt-3.1.0-py2.6.6.egg,/usr/local/lib/lib/lib/python2.6/python2.6/python2.6/dist/dist/dist/','/usr/local/lib/python2.6/dist包/pylint-0.18.0-py2.6.egg',“[中/地方/国家/地方/国际环境组织/国际卫生组织/生物多样性公约》,“鸡蛋”,“/”,“/鸡蛋/包,”,/usr/local/lib/python2.6/dist/pydee/pydee-0.4.4.24-py2.6.6.egg,'/usr/local/lib/python2.6/dist/visionegg-1.2.1-py2.6-linux-i686.egg,'/usr/local/lib/python2.6/dist/python2.6/dist/pyopengl-3.0.0.0c1-py2.6.py2.6.egg,'/usr/local/local/lib/lib/python2.6/python2.6/python2.6/dist/dist/python2.6/dist/py2.6/python2.6 6.鸡蛋','/usr/local/lib/python2.6/dist packages/pyinotify-0.8.6-py2.6.鸡蛋',/usr/local/lib/python2.6/dist/dist-packages/svgbatch-0.1.9-py2.6.6.egg,'/usr/local/lib/python2.6/dist/pyglet-1.1.3-py2.6.egg,'/usr/local/lib/python2.6/dist/dist/dist-packages/lepton-1.0b2-py2.6-linux-i686.egg,'/usr/local/lib/lib/python2.6/python2.6/dist/dist/dist/dist-packages/prope-0.9.9.9.2.6.6.6.6.egg/是的2.0.9- Py2.6- Lyux-i66.鸡蛋,'/Ur/Python 2.6/DIST包装/Pyunk0.0.4-Py2.6.鸡蛋','/Ur/Purthy/Python 2.6/DIST包装/CSUTILS-0.96PY2.6.鸡蛋','/Ur/Purthy/Lyb/Python 2.6/DIST包装/Stuelely1.0.14-Py2.6.鸡蛋','/Ur/Purthy/Lyb/Python 2.6/DIST包装/症状-0.65-Py2.6.鸡蛋,'/urr/Loop/Lyb/Python 2.6/DIST封装/ SimuleJeSonVWRAPEPAR-1.20PY2.6.鸡蛋,'/Dista/TestyEnv/Lab/Python 2.6','/home /杰西/Taby/TythyEnv/Lyb/Python 2.6/PART-LIUX2','/home /杰西/Tabe/TestyEnv/LIb/Python 2.6/LIB TK ],'/home /杰西/Tabe/TestyEnv/LIb/Python 2.6/LIB Ord','/home /杰西/Tabe/TestyEnv/Lib/Python 2.6/LyDyLoad,'/urr/Loop/Lyb/Python 2.6/DIST软件包/虚拟机Ur/Lyb/Python 2.6/Pyth-Luux2','/Ur/Lyb/Python 2.6/LIB Tk’,'/home /Lyb/Python 2.6/站点包],'/home /杰西/桌面/ TestyEnv/Lb/Python 2.6/站点包],'/Ur/Posi/Lyb/Python 2.6/DIST包,'/Ur/Lab/Python 2.6/DIST包,'/Ur/Lib/Python 2.6/DIST包/数值,'/Ur/Lib/Python 2.6’,'/''/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']
编辑3:我发现:https://bugs.launchpad.net/ubuntu/+source/python-virtualenv/+bug/339904显然virtualenv+python 2.6+ubuntu 9.04有一些问题。不确定这是否与我的问题有关…我尝试通过Python卸载Python VielalEnV包,然后通过EasyJu安装安装ValueLeV版本1.3.4,但仍然有相同的问题…
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']

这看起来像是向前迈进了一步,因为路径中出现了test_env内容,但它仍然不起作用。我认为我当前的问题是'/home /List./LIb/Python 2.6/Stand包'出现在“/home /杰西/Trase/TestGyEnv/Lab/Python 2.6/站点包”之前的路径中
编辑4:Roger建议使用--no site packages选项创建env。我试过了。同样的问题。
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']
>>> 

同样,问题似乎是路径中的my“.local”中的站点包比“test_env”中的站点包出现得更早。

最佳答案

你在Virtualenv遇到了一个虫子。尚未将其更新为正确处理本地目录。我已经提交了an issue for this at the bug tracker
更新:virtualenv 1.4.2及更高版本中的此错误is now fixed

关于python - 虚拟环境的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1624245/

相关文章:

python - 为什么 VB 因简单易用而备受诟病,而 Python 却不然?

Python,使用 slice() 对象获取最后一个元素

python - Virtualenv 返回 'No such file or directory...' 错误

python - 如何让 emacs-jedi 使用项目特定的 virtualenvs

python - Numpy 通过交错连接数组

python - 用矢量移动字符

python - 在 Linux 上调用 virtualenv bundled pip wuth subprocess.call 在到 venv 目录的长路径上失败

python - 如何找到python库路径?

python - 如何在 OSx 和 virtualenv 中使用 Python Matplotlib?

python - Plotly Legent Aa 标签如何删除它们