问题
I've used homebrew to install python on a new Mac Lion installation, and have been trying to install virtualenv and virtualenvwrapper with pip, but when I start a new terminal session, I get this traceback:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named virtualenvwrapper.hook_loader
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.
The python and pip used are from homebrew, but it seems to want me to use Apple's default python. I get the following
~$ which python | xargs ls -l
lrwxr-xr-x 1 beard admin 33 Jun 24 16:11 /usr/local/bin/python -> ../Cellar/python/2.7.3/bin/python
~$ echo $VIRTUALENVWRAPPER_PYTHON
/usr/local/bin/python
~$ which pip | xargs ls -l
-rwxr-xr-x 1 beard admin 301 Jun 24 16:18 /usr/local/share/python/pip
~$ which virtualenvwrapper.sh | xargs ls -l
-rwxr-xr-x 1 beard admin 32227 Jun 24 16:19 /usr/local/share/python/virtualenvwrapper.sh
However, it seems to think that I've installed pip (and virtualenv) with the system python in /usr/bin/python
Edit: In my bashrc--
export WORKON_HOME="$HOME/py-env"
export VIRTUALENVWRAPPER_LOG_DIR="$HOME/py-env"
export VIRTUALENVWRAPPER_HOOK_DIR="$HOME/py-env"
source /usr/local/share/python/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_PYTHON="/usr/local/bin/python"
回答1:
Since you have your own version of python, have you tried overriding VIRTUALENVWRAPPER_PYTHON? (It looks like you want export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
) The virtualenvwrapper docs suggest setting that envvar to the desired python before sourcing virtualenvwrapper.sh. Their example has:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
回答2:
Add or change path into ~/.bash_profile for virtualenvwrapper.sh to /usr/local/share/python/virtualenvwrapper.sh
it should look like
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/share/python/virtualenvwrapper.sh
回答3:
I ran into similar problems with Hombrew-installed Python conflicting with the system-installed Python under OS X Lion. I was never able to correct the problem using Homebrew. However, when I switched to using pythonbrew (https://github.com/utahta/pythonbrew) to manage my installed Pythons (instead of Homebrew), I was able to run virtualenvwrapper successfully.
回答4:
If your using PythonBrew & VirtualEnvBurrito with ZSH shell, make sure you check out your .zprofile - this contains some commands to execute the VirtualEnvBurrito startup script. As .zprofile is loaded before .zshrc the Python version is the system one. This will also throw up this error.
来源:https://stackoverflow.com/questions/11199360/error-message-for-virtualenvwrapper-on-os-x-lion