在Virtualenvwrapper中设置翻译

时间:2015-01-19 18:37:20

标签: python-3.x virtualenvwrapper

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

它运行良好。

1 个答案:

答案 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),我不知道它们是否会在一起玩得很好。