Try reinstalling pip and then reinstalling virtualenvwrapper (I had to go through these steps after upgrading to Mavericks):
$ sudo easy_install pip
$ sudo pip install --upgrade virtualenvwrapper
質問
After upgrading to OSX Mavericks, I am getting this message in the terminal:
/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 virtualenv has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.
解決
Try reinstalling pip and then reinstalling virtualenvwrapper (I had to go through these steps after upgrading to Mavericks):
$ sudo easy_install pip
$ sudo pip install --upgrade virtualenvwrapper
他のヒント
Re-arrange the export order so that the python
path is placed before the virtualenv
commands in your .bash_profile
file.
# python path
export PATH=/usr/local/bin:$PATH
# needed for virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
Try edit .bash_profile file
# Home brew
export PATH=/usr/local/bin:$PATH
# virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
I wouldn't recommend running pip with sudo. This was my solution for the same problem (after upgrading to Mavericks).
In essence, uninstall any virtualenv and brewed Python you had before (use which <command>
to check that you removed everything except the system Python in /usr/bin/python
) and cleanly install them once again:
brew install python --with-brewed-openssl
# Open a new terminal tab now (to access /usr/local/bin/python)
pip install virtualenv
pip install virtualenvwrapper
pip install --upgrade virtualenvwrapper
will fix the issue but never used sudo pip
this will change system-wide. If pip throws permission errors without sudo
then you should fix those and then try only with pip install <--upgrade> $(package)
.
I rather suggest install homebrew
and then install pip
using brew install pip
which will install latest stable version of pip for you.
Install homebrew and then run brew doctor
. If there are any warnings fix those(actually brew will tell you how to fixed those).
You may need to remove system-wide python comes with Mac and use brew
to install required versions. Use this to remove system-wide python
brew install python
or/and brew install python3
to install required python version/s.Finaly run pip install --upgrade virtualenvwrapper
Now on never use sudo pip
only use pip
.
I had the same problem with MacOS High Sierra. I was able to fix it with these lines in my .bash_profile file:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Code
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
You just need to configure the path properly. Run the following commands in the terminal:
which python
Output -
/usr/bin/python
which virtualenvwrapper.sh
Output -
/usr/local/bin/virtualenvwrapper.sh
echo $VIRTUALENVWRAPPER_PYTHON
/usr/local/bin/python
So as you can see that the variable $VIRTUALENVWRAPPER_PYTHON
is pointing towards the wrong python path. So we need to reset the path of variable $VIRTUALENVWRAPPER_PYTHON
.
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
now run the following the command:
source /usr/local/bin/virtualenvwrapper.sh
Running these two commands helped me get rid of it (had done a software update on macOS High Sierra)
$ sudo easy_install pip
$ sudo pip install --upgrade virtualenvwrapper
Firstly Cross-verify PATH in .bashrc with following commands:
which virtualenv
which virtualenvwrapper.sh
output of:
echo $VIRTUALENVWRAPPER_PYTHON
and
which python3
should be same which is
/usr/bin/python3
Configure the path accordingly to above results
export WORKON_HOME=~/.virtualenvs
export MY_PROJECT=~/my_proj
export VIRTUALENVWRAPPER_WORKON_CD=1
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV='result of which virtualenv'
source 'result of which virtualenvwrapper.sh'
if after verifying path still INITIALIZATION HOOK ERROR REMAINS.
Then, In source
left everthing as it is just replace virtualenvwrapper.sh
with virtualenvwrapper_lazy.sh
Then it should work