【问题标题】:Error message for virtualenvwrapper on Mac OS X Yosemite 10.10.3Mac OS X Yosemite 10.10.3 上 virtualenvwrapper 的错误消息
【发布时间】:2015-06-26 06:06:46
【问题描述】:

我最近完成了 Mac OS 10.10.3 的全新安装,并正在尝试设置 python 环境。但我无法让 virtualenvwrapper 工作。

我使用 Homebrew 安装了 python 2 和 3。

$ which python
/usr/local/bin/python

$ which python3
/usr/local/bin/python3

$ which pip
/usr/local/bin/pip

$ which virtualenv
/usr/local/bin/virtualenv

$ which virtualenvwrapper.sh
/usr/local/bin/virtualenvwrapper.sh

这是我的 .bash_profile 中的行

export PATH=/usr/local/bin:$PATH
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

virtualenv 独立工作:$ source bin/activate

但是当我获取 virtualenvwrapper.sh 时。我收到以下错误消息。

/usr/local/opt/python/bin/python2.7: 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/bin/python and that PATH is
set properly.

我不知道出了什么问题。当我在终端中回显 VIRTUALENVWRAPPER_PYTHON 时。它返回正确的路径。事实上,我所有的路径都是正确的。它们都指向 homebrew 目录。

我怎样才能让它工作?

【问题讨论】:

  • 你是否为合适的python版本安装了virtualenvwrapper?
  • 我刚刚做了一个 pip install virtualenvwrapper.pip freeze 返回 virtualenvwrapper==4.5.0
  • /usr/local/bin/pip 的第一行是什么意思?
  • #!/usr/local/opt/python3/bin/python3.4。那是问题吗?我可以将 python2 设为默认值并在需要时明确指定 python3 吗?

标签: python virtualenv osx-yosemite virtualenvwrapper


【解决方案1】:

问这个问题已经有一段时间了,但遇到同样的问题,我想添加我的解决方案,以防有人发现它有用:

由于 virtualenvwrapper 是使用 Python3 安装的,因此预计 VIRTUALENVWRAPPER_PYTHON 变量将指向 Python3 路径而不是 Python2 路径。

即在.bash_profile中更改:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python

收件人:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

然后您可以开始使用 virtualwrapper,即使没有为 Python2 安装(除非您想使用 Python2 显式创建环境,在这种情况下,您必须使用 pip2 安装它并在虚拟环境中指定相关的 Python 路径创建命令)。

【讨论】:

    【解决方案2】:

    根据我们的评论交流,您仅在 python 3. 你还需要在 python2 上安装它。这样做:

    curl -O https://bootstrap.pypa.io/get-pip.py python2.7 ./get-pip.py --user ~/.local/bin/pip install virtualenvwrapper 我自己的设置是相反的——我使用python2工作,所以安装virtualenv for 3.x in ~/local -- 希望对您有所帮助。

    非常感谢。您的回答为我指明了正确的方向。

    我通过卸载所有 virtualenv 解决了这个问题。

    pip uninstall virtualenv virtualenvwrapper
    

    然后我再次使用 pip2.7 安装了所有东西。

    pip2.7 install virtualenv virtualenvwrapper
    

    现在终端不会抱怨我 source virtualwrapper.sh 时找不到模块

    . /usr/local/bin/virtualenvwrapper.sh
    

    但是,python3 是默认的 python。

    $ mkvirtualenv myenv
    Using base prefix '/usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4'
    New python executable in myenv/bin/python3.4
    Also creating executable in myenv/bin/python
    Installing setuptools, pip...done.
    

    创建一个 python2 环境。我需要这样做:

    $ mkvirtualenv myenv --python /usr/local/bin/python
    Running virtualenv with interpreter /usr/local/bin/python
    New python executable in myenv/bin/python2.7
    Also creating executable in myenv/bin/python
    Installing setuptools, pip...done.
    

    【讨论】:

      【解决方案3】:

      根据我们的评论交流,您仅在 python 3 上安装了 virtualenvwrapper。您还需要在 python2 上安装它。这样做:

      curl -O https://bootstrap.pypa.io/get-pip.py
      python2.7 ./get-pip.py --user
      ~/.local/bin/pip install virtualenvwrapper
      

      我自己的设置正好相反——我使用 python2 工作,所以在 ~/local 中安装 virtualenv for 3.x——希望能有所帮助。

      【讨论】:

        【解决方案4】:

        这解决了我的问题

        假设你已经为python2添加了别名(mac中python的默认版本)

        将这些添加到~/.bash_profile

        export WORKON_HOME=~/.virtualenvs
        VIRTUALENVWRAPPER_PYTHON='/usr/local/bin/python3'
        source /usr/local/bin/virtualenvwrapper.sh
        

        【讨论】:

          【解决方案5】:

          只需将 VIRTUALENVWRAPPER_PYTHON 环境变量修改为:

          export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

          然后键入运行它

          source ~/.bash_profile

          【讨论】:

            猜你喜欢
            • 2012-06-27
            • 2011-10-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-03-16
            • 1970-01-01
            • 2015-09-11
            • 2016-01-09
            相关资源
            最近更新 更多