我希望在Mac上使用Python 3.6,结合virtualenvwrapper。但是由于默认使用的是Python 2.7,我遇到了问题。目前已经执行以下命令,找到了每个Python版本保存的位置:
如果我进入这个site-packages目录,会看到以下内容:
根据virtualenvwrapper的文档,我应该将以下内容添加到我的shell启动文件中以确保初始化,并将virtualenvwrapper的路径更改为在我的计算机上设置的路径:
我使用以下命令更改了我的 .bashrc 文件:
复制以下内容:
这使我得到了:
我不理解的是为什么virtualenvwrapper需要位于非目录的/usr/bin/python3。由于它在bin中,我也无法将其变成一个目录。此外,virtualenvwrapper.hook_loader与virtualenvwrapper.sh不在同一位置,这可能会导致问题。
我还尝试创建到/usr/local/bin的符号链接,因为有些人说这可以解决问题,但这并没有解决我的问题。
>> 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
如果我进入这个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进行安装。例如,这篇文章指出你只需要传递一个标志,但是你也应该注意不要在基本的Python安装中安装它。
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3
、/usr/local/bin/python3
和/usr/bin/python3
,这是什么意思? - kd12345export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7
? - kd12345