深入学习OSX终端——如何解决"usr/bin/python: No module named..."错误
Learning OSX terminal in depth - How to solve the "usr/bin/python: No module named..." error
我正在重新学习控制台,并且很想深入了解错误消息。使用 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 上的 Python 之一无法加载其中一个软件包 (virtualenvwrapper)。为了定位自己,我尝试了一些方法来了解 "stats" 我的系统。
这是我试过的:
~ ❯ which python
/usr/bin/python
第一个Python(系统一,苹果自带的OSX)
~ ❯ which python3
/usr/local/bin/python3
第二个 Python(Python3,由我通过 Homebrew 包管理器安装)
~ ❯ which pip
/usr/local/bin/pip
~ ❯ which pip3
/usr/local/bin/pip3
与 pythons 相同,两个 PIP - 第一个是 "works with" 系统 Python 安装的那个,第二个是 brewed 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 都说我已经安装了丢失的包,但是在相同的位置(在 brewed Python3 中)。我需要重新 link 东西吗?
编辑:
我又尝试了一件事情:
printenv | less
returns这个:
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”我只是不知道如何解决这个问题。
这解决了我的问题 - 我将以下行添加到我的 shell 配置文件中(在我的例子中 ~/.zshrc
):
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
通过这样做,我显然告诉 virtualenvwrapper 在哪里寻找 "proper" python(python 3 而不是安装的 system-wide python 2)。
我正在重新学习控制台,并且很想深入了解错误消息。使用 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 上的 Python 之一无法加载其中一个软件包 (virtualenvwrapper)。为了定位自己,我尝试了一些方法来了解 "stats" 我的系统。
这是我试过的:
~ ❯ which python
/usr/bin/python
第一个Python(系统一,苹果自带的OSX)
~ ❯ which python3
/usr/local/bin/python3
第二个 Python(Python3,由我通过 Homebrew 包管理器安装)
~ ❯ which pip
/usr/local/bin/pip
~ ❯ which pip3
/usr/local/bin/pip3
与 pythons 相同,两个 PIP - 第一个是 "works with" 系统 Python 安装的那个,第二个是 brewed 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 都说我已经安装了丢失的包,但是在相同的位置(在 brewed Python3 中)。我需要重新 link 东西吗?
编辑:
我又尝试了一件事情:
printenv | less
returns这个:
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”我只是不知道如何解决这个问题。
这解决了我的问题 - 我将以下行添加到我的 shell 配置文件中(在我的例子中 ~/.zshrc
):
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
通过这样做,我显然告诉 virtualenvwrapper 在哪里寻找 "proper" python(python 3 而不是安装的 system-wide python 2)。