深入学习OSX终端 - 如何解决“usr / bin / python:No module named ...”错误

时间:2018-04-05 10:33:44

标签: python-3.x zsh virtualenvwrapper

我正在绕着控制台再次学习,并希望深入了解错误信息。使用Mac OSX和ZSH。

这是第一个要解决的问题:

Last login: Thu Mar 29 16:00:27 on ttys000
/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.

这显然意味着我Mac上安装的其中一个Pythons无法加载其中一个软件包(virtualenvwrapper)。为了定位自己,我尝试了几件事来获得关于我的系统的“统计数据”。

以下是我尝试的内容:

~ ❯ which python
/usr/bin/python

第一个Python(系统一,Apple OSX附带的那个)

~ ❯ which python3
/usr/local/bin/python3

第二个Python(Python3,由我通过Homebrew包管理器安装)

~ ❯ which pip
/usr/local/bin/pip

~ ❯ which pip3
/usr/local/bin/pip3

与pythons相同,两个PIP - 第一个是“与系统Python安装一起工作的”,第二个是与酿造的Python3一起提供的。

~ ❯ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin

似乎我的$ PATH变量在~/.zshrc中设置正确(这是正确的文件吗?)

潜在的罪魁祸首:

~ ❯ pip install virtualenvwrapper                                                                
Requirement already satisfied: virtualenvwrapper in /usr/local/lib/python3.6/site-packages

~ ❯ pip3 install virtualenvwrapper
Requirement already satisfied: virtualenvwrapper in /usr/local/lib/python3.6/site-packages

这是问题吗?两个PIP都说我已经安装了缺少的软件包,但是在同一个位置(在酿造的Python3中)。我需要重新链接某些内容吗?

修改

我又尝试了一件事:

printenv | less

返回:

WORKON_HOME=/users/edchigliak/documents/projects/.virtualenvs
PROJECT_HOME=/users/edchigliak/documents/projects
VIRTUALENVWRAPPER_PROJECT_FILENAME=.project
VIRTUALENVWRAPPER_WORKON_CD=1
VIRTUALENVWRAPPER_SCRIPT=/usr/local/bin/virtualenvwrapper.sh
VIRTUALENVWRAPPER_HOOK_DIR=/users/edchigliak/documents/projects/.virtualenvs

最后一行可能是嫌犯。似乎ZSH无法找到“... _HOOK_DIR”我只是不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

这解决了我的问题 - 我将以下行添加到我的shell配置文件中(在我的案例中为~/.zshrc):

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

通过这样做我明显告诉virtualenvwrapper在哪里寻找“正确的”python(python 3而不是系统范围内安装的python 2)。