/usr/bin/python3: Error while finding spec for 

2019-03-09 16:58发布

问题:

I'm trying to follow 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!.

the actual error:

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:~#

I'm following how to to the teeth, what am I doing wrong?

回答1:

Thanks to @Alexander, I was able to fix my issue by changing:

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

to

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python

due to backwards compatibility.



回答2:

I faced similar problem, when using python3 with virtualenvwrapper,

sudo apt-get install python3-pip

Then install virtualenv and virtualenvwrapper from pip3,

sudo pip3 install virtualenv virtualenvwrapper

then source it again,

source .bashrc 


回答3:

I encountered a similar issue with virtualenvwrapper complaining not being to find virtualenvwrapper.hook_loader. I was able to narrow down to this particular line in my .bash_profile

source /usr/local/bin/virtualenvwrapper.sh

as seen below

$ 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.

After some trial and error, it turns out that a reinstallation of the virtualenvwrapper package resolved it. This was a manifest of the fact that I recently upgrade python3 (from version 3.5.2 to 3.6.1) via homebrew and in turn it broke virtualenvwrapper's shell script that hardcoded references to the older version of python3 (in my case it was 3.5.2). In short, this below line should fix it (at least in my case it did).

pip3 install virtualenvwrapper


回答4:

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python

good choice, but you already knew /usr/bin/python is 2.7

If you want to use version 3

sudo apt-get install python3-pip

and logout & login



回答5:

check your python3 installation directory:

which python3

If installed by brew you should get:

/usr/local/python3

export python version to be used virtualenvwrapper:

export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3

source your shell configuration file:
bash

source .bashrc

zsh

source .zshrc



回答6:

In macOS Sierra, If you installed virtualenv package using pip3, add following to .bash_profile

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

or

export VIRTUALENVWRAPPER_PYTHON=$(which python3)

after that every new virtualenvironment you created using workon myvenv uses python3 as python interpreter



回答7:

This error appeared for me after running brew update and brew upgrade on mac os high sierra.

The issue was resolved by reinstalling virtualenvwrappper i.e. pip install virtualenvwrapper.



回答8:

I had already installed virtualenv so just needed to run

pip3 install virtualenvwrapper