【问题标题】:Error message for virtualenvwrapper on OS X LionOS X Lion 上 virtualenvwrapper 的错误消息
【发布时间】:2012-06-27 07:12:24
【问题描述】:

我已经使用自制软件在新的 Mac Lion 安装上安装了 python,并且一直在尝试使用 pip 安装 virtualenv 和 virtualenvwrapper,但是当我开始一个新的终端会话时,我得到了这个回溯:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named virtualenvwrapper.hook_loader
virtualenvwrapper.sh: There was a problem running the initialization hooks. 

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenv has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.

使用的python和pip来自自制,但似乎希望我使用Apple的默认python。我得到以下内容

~$ which python | xargs ls -l
lrwxr-xr-x  1 beard  admin  33 Jun 24 16:11 /usr/local/bin/python -> ../Cellar/python/2.7.3/bin/python
~$ echo $VIRTUALENVWRAPPER_PYTHON
/usr/local/bin/python
~$ which pip | xargs ls -l
-rwxr-xr-x  1 beard  admin  301 Jun 24 16:18 /usr/local/share/python/pip
~$ which virtualenvwrapper.sh | xargs ls -l
-rwxr-xr-x  1 beard  admin  32227 Jun 24 16:19 /usr/local/share/python/virtualenvwrapper.sh

但是,似乎认为我已经在/usr/bin/python中安装了pip(和virtualenv)与系统python

编辑:在我的 bashrc--

export WORKON_HOME="$HOME/py-env"
export VIRTUALENVWRAPPER_LOG_DIR="$HOME/py-env"
export VIRTUALENVWRAPPER_HOOK_DIR="$HOME/py-env"
source /usr/local/share/python/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_PYTHON="/usr/local/bin/python"

【问题讨论】:

    标签: python osx-lion virtualenv homebrew


    【解决方案1】:

    既然您有自己的 python 版本,您是否尝试过覆盖 VIRTUALENVWRAPPER_PYTHON? (看起来你想要export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/pythonThe virtualenvwrapper docs 建议在采购 virtualenvwrapper.sh 之前将该 envvar 设置为所需的 python。他们的例子有:

    export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
    export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
    source /usr/local/bin/virtualenvwrapper.sh
    

    【讨论】:

    • 我在 bashrc 中设置了 virtualenvwrapper_python 变量(刚刚编辑过的问题)。
    • 嗯,这可能很愚蠢,但看起来你在 source 命令之后有 export 命令,所以在调用 virtualenvwrapper.sh 时不会看到正确的 python 值。尝试将源移到最后?
    【解决方案2】:

    我遇到了类似的问题,即 Hombrew 安装的 Python 与 OS X Lion 下系统安装的 Python 冲突。我永远无法使用 Homebrew 解决问题。但是,当我切换到使用 pythonbrew (https://github.com/utahta/pythonbrew) 来管理我安装的 Python(而不是 Homebrew)时,我能够成功运行 virtualenvwrapper。

    【讨论】:

      【解决方案3】:

      如果您在 ZSH shell 中使用 PythonBrew 和 VirtualEnvBurrito,请确保检查您的 .zprofile - 其中包含一些用于执行 VirtualEnvBurrito 启动脚本的命令。由于 .zprofile 在 .zshrc 之前加载,因此 Python 版本是系统版本。这也会抛出这个错误。

      【讨论】:

        【解决方案4】:

        为 virtualenvwrapper.sh 添加或更改路径到 ~/.bash_profile 到 /usr/local/share/python/virtualenvwrapper.sh

        应该是这样的

        export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
        export WORKON_HOME=$HOME/.virtualenvs
        
        source /usr/local/share/python/virtualenvwrapper.sh
        

        【讨论】:

          【解决方案5】:

          我在 macOS Catalina 上遇到了类似的问题。它附带 zsh 和 python 2.7

          通过以下步骤我安装了python3和虚拟环境,

          安装 Homebrew

          /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
          

          安装python

          brew install python
          

          检查python的安装位置

          brew show python
          

          压缩输出,

          ==> Caveats
          Python has been installed as
            /usr/local/bin/python3
          
          Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
          `python3`, `python3-config`, `pip3` etc., respectively, have been installed into
            /usr/local/opt/python/libexec/bin
          
          You can install Python packages with
            pip3 install <package>
          They will install into the site-package directory
            /usr/local/lib/python3.7/site-packages
          
          See: https://docs.brew.sh/Homebrew-and-Python
          

          macOS 上的默认 python 路径是 /usr/bin/python,它指向 Python 2.7。所以我们需要创建一个从python到python3的别名

          alias python=/usr/local/bin/python3
          

          然后按照上面@munchybunch 提到的步骤,

          export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
          export WORKON_HOME=$HOME/.virtualenvs
          source /usr/local/bin/virtualenvwrapper.sh
          

          按照上述步骤,我能够创建一个虚拟环境,

          mkvirtualenv dev
          

          【讨论】:

            猜你喜欢
            • 2011-10-19
            • 2015-06-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-09-12
            • 1970-01-01
            相关资源
            最近更新 更多