/usr/bin/python3: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportError'>: No module named 'virtualenvwrapper')
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 $HOME/.bashrc
Thanks to @Alexander, I was able to fix my issue by changing the line in ~/.bashrc
:
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
to
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
due to backwards compatibility.
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
I had already installed virtualenv so just needed to run
pip3 install virtualenvwrapper