/usr/bin/python3:查找 'virtualenvwrapper.hook_loader' 规范时出错(<class 'ImportError'>:没有名为 'virtualenvwrapper' 的模块)

/usr/bin/python3: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportError'>: No module named 'virtualenvwrapper')

我正在尝试关注 How To Serve Django Applications with uWSGI and Nginx on Ubuntu 14.04 and I'm failing at the very earlier stage, due to amount of output, I placed all related information into Pastebin.com - #1 paste tool since 2002!

实际错误:

root@alexus:~# echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
root@alexus:~# source ~/.bashrc
/usr/bin/python3: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportError'>: 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/python3 and that PATH is
set properly.
root@alexus:~#

我正在关注牙齿矫正方法,我做错了什么?

感谢@Alexander,我能够通过更改 ~/.bashrc:

中的行来解决我的问题
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python

由于向后兼容。

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python

不错的选择,但您已经知道 /usr/bin/python 是 2.7

如果您想使用版本 3

sudo apt-get install python3-pip

注销和登录

我在使用 python3 和 virtualenvwrapper 时遇到了类似的问题,

sudo apt-get install python3-pip

然后从 pip3 安装 virtualenv 和 virtualenvwrapper,

sudo pip3 install virtualenv virtualenvwrapper

然后再来源,

source $HOME/.bashrc 

我遇到了与 virtualenvwrapper 类似的问题,抱怨找不到 virtualenvwrapper.hook_loader。我能够在我的 .bash_profile

中缩小到这一行

来源/usr/local/bin/virtualenvwrapper.sh

如下图

$ source /usr/local/bin/virtualenvwrapper.sh
/usr/local/opt/python3/bin/python3.6: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: 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/python3 and that PATH is
set properly.

经过反复试验,结果是重新安装 virtualenvwrapper 包解决了这个问题。这是我最近通过自制软件升级 python3(从版本 3.5.2 到 3.6.1)这一事实的一个证明,它反过来破坏了 virtualenvwrapper 的 shell 脚本,该脚本硬编码了对旧版本 python3(在我的例子中是 3.5.2)。简而言之,下面这行应该可以修复它(至少在我的情况下是这样)。

pip3 install virtualenvwrapper

检查您的 python3 安装目录:

which python3

如果通过 brew 安装,您应该得到:

/usr/local/python3

导出python要使用的版本virtualenvwrapper:

export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3

获取您的 shell 配置文件:
bash

source .bashrc

zsh

source .zshrc

在 macOS Sierra 中, 如果您使用 pip3 安装了 virtualenv 软件包, 将以下内容添加到 .bash_profile

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

export VIRTUALENVWRAPPER_PYTHON=$(which python3)

之后,您使用 workon myvenv 创建的每个新虚拟环境 使用 python3 作为 python 解释器

我在 运行 brew updatebrew upgrade mac os high sierra 之后出现了这个错误。

问题已通过重新安装 virtualenvwrapper 解决,即 pip install virtualenvwrapper

我已经安装了 virtualenv 所以只需要 运行

pip3 install virtualenvwrapper

就我而言,pip3 和 python3 之间存在某种不匹配(因为我安装了多个 python)。这对我有用:

sudo python -m pip install virtualenvwrapper

在我的电脑上,我 运行 sudo apt install python-pip 然后 pip install virtualenvwrapper 但在我的设置中,我设置如下:

export WORKON_HOME=$HOME/.Envs
export VIRTUALENVWRAPPER_PYTHON=$(which -a python3)
source $HOME/.local/bin/virtualenvwrapper.sh

这消除了错误并注意我正在使用 python3 并且我使用 pip3 作为我的默认值

由于完全不同的原因,我遇到了这个错误,但是由于我结束了这个线程,我想有人可能会觉得这很有用。所以在我的例子中,事实证明我的脚本在我已经在虚拟环境上时试图激活它(workon 语句是从我的 .profile 文件发出的)。因此解决方案是先 deactivate 环境,然后 运行 脚本。

安装 vimmacvim 后,我在 Mac OS Catalina 10.15.6 上遇到了类似的问题 使用以下内容:

brew install vim && brew install macvim

我认为这是问题的原因。

虽然 workon 有效但总是给出如下错误信息:

 ~ $ workon loom
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
(loom)  ~ $ 

最终对我有用的是:

  1. export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 添加到 .bash_profile
  2. sudo pip3 install virtualenvwrapper

这是我解决的问题

Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')

在创建和激活环境中获得。

在我的 .bashrc 我曾写道:

export VIRTUALENVWRAPPER_PYTHON=python3

将其更改为:

export VIRTUALENVWRAPPER_PYTHON=$(which python3)

帮我解决了问题。

注意:如果你激活一个环境运行which python3,你会发现python运行是环境之一,不是全局的VIRTUALENVWRAPPER_PYTHON

中指定的一个

尝试安装python-is-python3:

1.Update 包索引:

sudo apt-get update

2.Install python-是-python3 deb 包:

sudo apt-get install python-is-python3

如果您是在 macOS 更新后在这里,并通过 brew 安装了 python3,请尝试重新链接您的 python3

版本
  • brew link python@3.8
  • brew link python@3.9
  • 等等

我在升级 python3 软件包并安装了 brew python3.

之后收到了这个警告

我发现一个 pip3 和 python3 版本不匹配 :

❯ which python3 && python3 --version
/usr/bin/python3
Python 3.8.2

❯ which pip3 && pip3 --version
/usr/local/bin/pip3
pip 21.0.1 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

运行 brew link python@3.9 删除警告。