Terminal issue with virtualenvwrapper after Mavericks Upgrade

Question:

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.
Asked By: Ryan Allen

||

Answers:

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
Answered By: Beau

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
Answered By: metakermit

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
Answered By: Josh Antweiler

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.

  1. Install homebrew and then run brew doctor . If there are any warnings fix those(actually brew will tell you how to fixed those).

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

  3. Use brew install python or/and brew install python3 to install required python version/s.
  4. Finaly run pip install --upgrade virtualenvwrapper

  5. Now on never use sudo pip only use pip.

Answered By: syodage

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
Answered By: Tuan Pham

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
Answered By: neosergio

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
Answered By: Nilisha Maheshwari

You just need to configure the path properly. Run the following commands in the terminal:

  1. which python

Output –

/usr/bin/python
  1. which virtualenvwrapper.sh

Output –

/usr/local/bin/virtualenvwrapper.sh
  1. 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.

  1. export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python

now run the following the command:

source /usr/local/bin/virtualenvwrapper.sh 
Answered By: PRIYANSHU SHARMA

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

Answered By: AMITESH KUMAR