【问题标题】:Initializing virtualenvwrapper for Python 3.6 on MacOS在 MacOS 上为 Python 3.6 初始化 virtualenvwrapper
【发布时间】: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


    【解决方案1】:

    添加

    export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
    

    .bashrc 并在终端中执行命令。这为virtualenvwrapper 设置了Python 解释器的路径。

    【讨论】:

    • 我仍然遇到同样的问题:/usr/bin/python: 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/bin/python and that PATH is set properly.
    • 嗨,你能看看我的问题stackoverflow.com/questions/66775192/…
    • 快速提问:当我运行 which -a python3 我得到/Library/Frameworks/Python.framework/Versions/3.8/bin/python3 /usr/local/bin/python3 /usr/bin/python3 这是什么意思?
    • @kd12345 请不要滥用 cmets 提出离题问题。评论用于讨论问题或答案。
    • @phd 对此感到抱歉,我应该使用您建议的答案还是 export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7
    猜你喜欢
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 2018-08-27
    • 2019-03-31
    • 2022-01-10
    • 2018-02-05
    • 2018-08-07
    相关资源
    最近更新 更多