Made the upgrade to Mac OS X 10.8 (Mountain Lion) and get now the following error when trying to call $ pip
:
Traceback (most recent call last):
I had a similar error except that sudo pip
did not work either. I am using a "brew" installation of python (which is symlinked to /usr/local/bin) and found that the problem was that the shebangs in the pip and easy_install files were hardcoded to #!/usr/bin/python
instead of #!/usr/local/bin/python
, and so was using the system python version instead of the brew version.
Cheers, Tom
I tried all the answers here, from reinstall easy_install to install a new python version, nothing worked for me.
What I did was install a fresh Python install in the /Library/Frameworks folder, and symlink to that one from /usr/local/bin (for some reason, my system had a symlink from /Library/Frameworks/Python.framework to /System/Frameworks/Python.framework). My idea was to keep the /System/Library/Frameworks files to be used by system commands in /usr/bin, and have /usr/local/bin points to another "user land" install in /Library/Frameworks. In order to do that :
rename /System/Library/Framework/Python.framework into _OLD_Python.framework
delete every python file in /usr/local/bin (using sudo rm /usr/local/bin/python*) and /usr/local/bin/pip* (but do NOT touch /usr/bin)
Reinstall python from the official site (http://www.python.org/getit/) ==> This will reinstall python in /Library/Framework and not /System/Library/Framework
Then launch the Applications/Python/Update Shell Profile.command command that will make sure your path is using that one
Then recreate the symlinks in /usr/local/bin using
ln -s ../../Library/Frameworks/Python.framework/Versions/2.7/bin/python python
Finaly, rename the _OLD_Python.framework back to Python.framework (because that's the path /usr/bin/python points to)
Typing "which python" should point to /Library/... and not /System/Library. From there you should be able to reinstall easy_install and pip properly.
On Mavericks, I found that
ls -l `which python`
/usr/local/bin/python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python
while pip showed
ls -l `which pip`
/usr/local/bin/pip
I renamed the old pip
and created a symlink to the proper pip binary, and now all is well. It's probably not the best solution, but it works.
I usually had same issue with some project referencing bonjour-py
in their requirements.txt
, didn't know which or how to track that one at the moment.
And someone told me that pip-tool. It's actually a great alternative to identify which you have, and if you want to update them. And as a bonus it ignored well the bonjour-py
error.
I actually couldn't do what was suggested. I instead had to execute:
xcode-select --install
Then I was able to install the ldap module.
Rather than change ownership, it is possible to simply change permissions:
$ sudo chmod -R o+rX /Library/Python/2.7/site.packages