我在OSX Mavericks中使用virtualenvwrapper一段时间了。 我通过自制软件安装了python 2.x和3.x.为python 2创建环境不是问题。但是现在我想用python 3创建环境,所以根据documentation我可以将变量VIRTUALENVWRAPPER_PYTHON设置为解释器的完整路径来选择解释器:
# VIRTUALENVWRAPPER
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
export WORKON_HOME="$HOME/.virtualenvs"
export PROJECT_HOME=$HOME/Python_projects
source /usr/local/bin/virtualenvwrapper.sh
所以我做了,但当我打开终端时,它对我大喊:
/usr/local/opt/python3/bin/python3.4: Error while finding spec for
'virtualenvwrapper.hook_loader' (<class 'ImportError'>: No module
named 'virtualenvwrapper')
virtualenvwrapper.sh: There was a problem running the initialization
hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/local/opt/python3/bin/python3.4 and
that PATH is set properly.
我检查了那个目录,并在那里安装了virtualenvwrapper和virtualenv。那么如何为python 3安装这些软件包?
这些软件包尚未安装,因此我安装了它们:
$ pip3 install install virtualenvwrapper
$ pip3 install install virtualenvwrapper
现在问题似乎是另一个问题:
$ mkvirtualenv -p /usr/local/bin/python3 test
File /usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ssl.py", line 97, in <module>
import _ssl # if we can't import it, let the error propagate
ImportError: dlopen(/Users/javi/.virtualenvs/test/lib/python3.4/lib-dynload/_ssl.so, 2): Symbol not found: _SSLv2_method
Referenced from: /Users/javi/.virtualenvs/test/lib/python3.4/lib-dynload/_ssl.so
Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
in /Users/javi/.virtualenvs/test/lib/python3.4/lib-dynload/_ssl.so
解决方案:
完成后:
$ brew uninstall --force python
$ brew uninstall --force python3
再次安装它们:
$ brew install python
$ brew install python3
并修复一些损坏的链接:
$ brew linkapps python
$ brew linkapps python3
问题似乎消失了。默认情况下,由于我的 .bashrc 中的行,virtualenvwrapper在我的新环
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
而且,当我需要创建一个内部有python 2.X的环境时,我可以这样做:
$ mkvirtualenv -p /usr/local/bin/python test4
它运行良好。
答案 0 :(得分:4)
我没有OS X来测试它,但看起来你已经将virtualenv(和virtualenvwrapper)安装到python2.7 site-packages目录(or the homebrew site-packages directory),而不是python3.4。
运行时: 来源/usr/local/bin/virtualenvwrapper.sh 它在说
检查是否已安装virtualenvwrapper VIRTUALENVWRAPPER_PYTHON =的/ usr /本地的/ opt / python3 / bin中/ python3.4
我最近在ubuntu上安装了这个,并使用pip-3.4将virtualenv安装到python3.4站点包。
编辑:此python3 osx guide表示pip3附带自制软件python3软件包。使用pip3安装virtualenvwrapper将解决您的问题。
注意:如果您安装了两个virtualenvwrappers(通过pip然后是pip3),我不知道它们是否会在一起玩得很好。