我一直在Ubuntu上使用virtualenv它摇滚,所以我试图在我的Mac上使用它而我遇到了麻烦.
virtualenv命令成功创建了目录,easy_install很乐意在其中安装包,但我无法导入我安装的任何内容.看起来sys.path没有正确设置:它不包括虚拟站点包,即使我使用–no-site-packages选项.难道我做错了什么?
我在Mac OS 10.5.6上使用Python 2.5.1和virtualenv 1.3.3
编辑:这是我尝试使用virtualenv时会发生什么:
<code>$virtualenv test New python executable in test/bin/python Installing setuptools............done. $source test/bin/activate (test)$which python /Users/Justin/test/bin/python (test)$which easy_install /Users/Justin/test/bin/easy_install (test)$easy_install webcolors [...] Installed /Users/Justin/test/lib/python2.5/site-packages/webcolors-1.3-py2.5.egg Processing dependencies for webcolors Finished processing dependencies for webcolors (test)$python [...] >>> import webcolors Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named webcolors >>> import sys >>> print sys.path ['', '/Library/Python/2.5/site-packages/SQLObject-0.10.2-py2.5.egg', '/Library/Python/2.5/site-packages/FormEncode-1.0.1-py2.5.egg', ..., '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5', '/Users/Justin/test/lib/python25.zip', '/Users/Justin/test/lib/python2.5', '/Users/Justin/test/lib/python2.5/plat-darwin', '/Users/Justin/test/lib/python2.5/plat-mac', '/Users/Justin/test/lib/python2.5/plat-mac/lib-scriptpackages', '/Users/Justin/test/Extras/lib/python', '/Users/Justin/test/lib/python2.5/lib-tk', '/Users/Justin/test/lib/python2.5/lib-dynload', '/Library/Python/2.5/site-packages', '/Library/Python/2.5/site-packages/PIL'] </code>
编辑2:使用activate_this.py脚本可以正常工作,但运行源bin / activate则不行.希望这有助于缩小问题范围?
解决方法:
我在使用相同的OS X / Python / virtualenv版本时遇到任何问题(OS X 10.5.6,Python 2.5.1,virtualenv 1.3.1)
<code>$virtualenv test New python executable in test/bin/python Installing setuptools............done. $source test/bin/activate (test)$which python /Users/dbr/test/bin/python $echo $PATH /Users/dbr/test/bin:/usr/bin:[...] $python [...] >>> import sys >>> print sys.path ['', '/Users/dbr/test/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg', </code>
要检查的一件事 – 在干净的shell中运行以下命令:
<code>$virtualenv test
$python
[...]
>>> import sys
>>> sys.path
['', '/Library/Python/2.5/site-packages/elementtree-1.2.7_20070827_preview-py2.5.egg'[...]
>>> sys.path.append("test/bin/")
>>> import activate_this
>>> sys.path
['/Users/dbr/test/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg'
</code>
或者来自virtualenv文档:
<code>activate_this = '/path/to/env/bin/activate_this.py' execfile(activate_this, dict(__file__=activate_this)) </code>
这应该强制当前的Python shell进入virtualenv
此外,在运行源test / bin / activate尝试使用-v标志(详细)运行python后,它可能会产生一些有用的东西.
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!