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

时间:2015-10-19 14:11:49

标签: python virtualenv virtualenvwrapper

我正在尝试关注How To Serve Django Applications with uWSGI and Nginx on Ubuntu 14.04而我在早期阶段失败,由于输出量的原因,我将所有相关信息都放入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:~#

我正在追问如何磨牙,我做错了什么?

16 个答案:

答案 0 :(得分:45)

感谢@Alexander,我通过更改:

来解决我的问题
  

export VIRTUALENVWRAPPER_PYTHON = / usr / bin / python3

  

export VIRTUALENVWRAPPER_PYTHON = / usr / bin / python

由于向后兼容性。

答案 1 :(得分:42)

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

sudo apt-get install python3-pip

然后从pip3

安装virtualenv和virtualenvwrapper
sudo pip3 install virtualenv virtualenvwrapper

然后再次采购,

source .bashrc 

答案 2 :(得分:20)

我遇到类似的问题,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

答案 3 :(得分:9)

  

export VIRTUALENVWRAPPER_PYTHON = / usr / bin / python

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

如果您想使用版本3

  

sudo apt-get install python3-pip

并退出&amp;登录

答案 4 :(得分:8)

检查python3安装目录:

which python3

如果由 brew 安装,您应该获得:

/usr/local/python3

导出python版本使用virtualenvwrapper:

export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3

获取您的shell配置文件:
bash

source .bashrc

zsh

source .zshrc

答案 5 :(得分:7)

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

pip3 install virtualenvwrapper

答案 6 :(得分:7)

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

sudo python -m pip install virtualenvwrapper

答案 7 :(得分:6)

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

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

export VIRTUALENVWRAPPER_PYTHON=$(which python3)

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

答案 8 :(得分:5)

在mac os high sierra上运行brew updatebrew upgrade后,我出现了此错误。

通过重新安装virtualenvwrappper即pip install virtualenvwrapper解决了这个问题。

答案 9 :(得分:3)

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

  • brew link python@3.8
  • brew link python@3.9

答案 10 :(得分:2)

由于完全不同的原因,我遇到了此错误,但是由于我结束了此线程,所以我发现有人可能会发现此有用。因此,以我为例,事实证明我的脚本正在尝试激活虚拟环境(我的workon文件发出了.profile语句)。因此,解决方案是先简单deactivate环境然后运行脚本。

答案 11 :(得分:1)

在计算机上,我先运行IActionResult,然后运行sudo apt install python-pip,但是在我的设置中,我将其设置如下:

pip install virtualenvwrapper

摆脱了错误,请注意我正在使用python3,并且将pip3用作默认值

答案 12 :(得分:1)

这是我解决的问题

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 run是环境之一,而不是VIRTUALENVWRAPPER_PYTHON

中指定的全局环境。

答案 13 :(得分:0)

在安装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

答案 14 :(得分:0)

尝试安装 python-is-python3:

1.更新包索引:

sudo apt-get update

2.安装 python-is-python3 deb 包:

sudo apt-get install python-is-python3

答案 15 :(得分:0)

我在 brew 升级后收到了这个警告,它更新了 python3 包和 brew 安装的 python3。

我发现 pip3 和 python3 版本不匹配,正如 Evan Thomas 所暗示的:

❯ 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)

按照snakesNbronis 的建议运行brew link python@3.9 会删除警告。