15

我已经使用自制软件在新的 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

但是,似乎认为我已经在系统 python 中安装了 pip (和 virtualenv)/usr/bin/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"
4

5 回答 5

20

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

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
于 2012-06-26T00:54:52.593 回答
1

将 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
于 2013-05-21T14:08:13.780 回答
0

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

于 2012-08-29T09:26:30.583 回答
0

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

于 2012-06-26T02:48:28.530 回答
0

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

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

安装自制软件

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

安装蟒蛇

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
于 2020-04-28T14:35:41.757 回答