【发布时间】:2015-03-17 20:36:03
【问题描述】:
我在 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
问题似乎消失了。默认情况下,virtualenvwrapper 在我的新环境中放置一个 python3 可执行文件,这要归功于我的 .bashrc 中的行:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
而且,当我需要在里面创建一个带有 python 2.X 的环境时,我可以这样做:
$ mkvirtualenv -p /usr/local/bin/python test4
而且运行良好。
【问题讨论】:
标签: python-3.x virtualenvwrapper