mbe*_*ger 5 python macos virtualenv virtualenvwrapper
我想在 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
Run Code Online (Sandbox Code Playgroud)
我已经成功安装了 virtualenv 和 virtualenvwrapper 使用:
>> pip3 install virtualenv
>> pip3 install virtualenvwrapper
Run Code Online (Sandbox Code Playgroud)
然后我搜索 virtualenv 和 virtualenv 包装器的位置以确认它们的位置:
>> 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
Run Code Online (Sandbox Code Playgroud)
如果我去这个站点包目录有以下内容:
virtualenvwrapper
|--- __pycache__
|--- hook_loader.py
|--- project.py
|--- user_scripts.py
virtualenvwrapper-4.8.2-py2.7-nspkg.pth
virtualenvwrapper-4.8.2.dist-info
Run Code Online (Sandbox Code Playgroud)
根据 virtualenvwrapper 的文档,我应该将以下内容添加到我的 shell 启动文件中以确保初始化,将 virtualenvwrapper 的路径更改为我机器上设置的路径:
export WORKON_HOME=~/Envs
$ mkdir -p $WORKON_HOME
$ source /usr/local/bin/virtualenvwrapper.sh
Run Code Online (Sandbox Code Playgroud)
然后我搜索了 virtualenvwrapper.sh 实际所在的位置(由于某种原因,它不在安装 virtualenvwrapper 模块的位置):
>> which virtualenvwrapper.sh
>> /Library/Frameworks/Python.framework/Versions/3.6/bin/virtualenvwrapper.sh
Run Code Online (Sandbox Code Playgroud)
我使用以下方法更改了我的 .bashrc 文件:
>> nano ~./bashrc
Run Code Online (Sandbox Code Playgroud)
抄录如下:
# script for virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /Library/Frameworks/Python.framework/Versions/3.6/bin/virtualenvwrapper.sh
Run Code Online (Sandbox Code Playgroud)
然后我打开了一个新终端并运行:
>> source `which virtualenvwrapper.sh`
Run Code Online (Sandbox Code Playgroud)
这给了我:
/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.
Run Code Online (Sandbox Code Playgroud)
我不明白的是为什么 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
Run Code Online (Sandbox Code Playgroud)
另一个问题是,如果我想对 Python3 使用 virtualenvwrapper,是否需要使用 pip3 安装它。例如,这篇文章指出您只需要传递一个标志,但是,您还应该警惕在基本 Python 安装中安装它。
添加
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
Run Code Online (Sandbox Code Playgroud)
并.bashrc在终端中执行命令。这设置了 Python 解释器的路径virtualenvwrapper。
| 归档时间: |
|
| 查看次数: |
2905 次 |
| 最近记录: |