【发布时间】:2018-06-18 02:43:42
【问题描述】:
我想在 Python 3.6 中使用 virtualenvwrapper,但是,我正在使用默认使用 Python 2.7 的 Mac 并且遇到问题。这是我到目前为止所做的。使用以下命令,我找到了每个 Python 版本的保存位置:
>> which python
>> /usr/bin/python
>> which python3
>> /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
我已经成功安装了 virtualenv 和 virtualenvwrapper,使用:
>> pip3 install virtualenv
>> pip3 install virtualenvwrapper
然后我搜索 virtualenv 和 virtualenv wrapper 的位置以确认它们的位置:
>> pip3 show virtualenv
>> Location: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
>> pip3 show virtualenvwrapper
>> Location: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
如果我转到此站点包目录,则有以下内容:
virtualenvwrapper
|--- __pycache__
|--- hook_loader.py
|--- project.py
|--- user_scripts.py
virtualenvwrapper-4.8.2-py2.7-nspkg.pth
virtualenvwrapper-4.8.2.dist-info
根据 virtualenvwrapper 的文档,我应该在我的 shell 启动文件中添加以下内容以确保初始化,将 virtualenvwrapper 的路径更改为我机器上设置的路径:
export WORKON_HOME=~/Envs
$ mkdir -p $WORKON_HOME
$ source /usr/local/bin/virtualenvwrapper.sh
然后我搜索了 virtualenvwrapper.sh 的实际位置(由于某种原因,它不在安装 virtualenvwrapper 模块的位置):
>> which virtualenvwrapper.sh
>> /Library/Frameworks/Python.framework/Versions/3.6/bin/virtualenvwrapper.sh
我使用以下方法更改了我的 .bashrc 文件:
>> nano ~./bashrc
复制如下:
# script for virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /Library/Frameworks/Python.framework/Versions/3.6/bin/virtualenvwrapper.sh
然后我打开一个新终端并运行:
>> source `which virtualenvwrapper.sh`
这给了我:
/usr/bin/python3: No such file or directory
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/bin/python3 and that PATH is
set properly.
我不明白为什么 virtualenvwrapper 需要位于 /usr/bin/python3 这不是一个目录。由于它在 bin 中,我也不可能将其设为目录。此外,virtualenvwrapper.hook_loader 不在 virtualenvwrapper.sh 所在的位置,我认为这可能会导致问题。
我还尝试创建指向 /usr/local/bin 的符号链接,因为有些人说它解决了他们的问题,但这并没有解决我的问题:
sudo ln /Library/Frameworks/Python.framework/Versions/3.6/bin/virtualenvwrapper.sh /usr/local/bin/virtualenvwrapper.sh
另一个问题是,如果我想为 Python3 使用 virtualenvwrapper,是否需要使用 pip3 安装它。例如,this post 声明您只需要传递一个标志,但是,您也应该小心在基础 Python 安装中安装它。
【问题讨论】:
标签: python macos virtualenv virtualenvwrapper