Python pip сломался после обновления OS X 10.8
сделал обновление до Mac OS X 10.8 (Mountain Lion) и теперь получить следующую ошибку при попытке вызова $ pip
:
Traceback (most recent call last):
File "/usr/local/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in <module>
working_set.require(__requires__)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
needed = self.resolve(parse_requirements(requirements))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
raise DistributionNotFound(req) # XXX put more info here
pkg_resources.DistributionNotFound: pip==1.1
обновление: попытался переустановить, выполнив процедуру установки снова (с http://www.pip-installer.org/en/latest/installing.html#using-the-installer и easy_install
), но не работал, получил ту же ошибку.
попробовал теперь следующее: вызов $ sudo pip
и выше ошибка исчезает. Странно то, что каталоги которые не удалось найти в приведенном выше сообщении об ошибке точку /System/Library/... в то время как установка python (новая ?) найти в / Библиотека / фреймворки/..:
$ which python
/Library/Frameworks/Python.framework/Versions/Current/bin/python
есть идеи, как избавиться от судо?
10 ответов:
использовать
easy_install
обновитьpip
для последняя версия:
sudo easy_install -U pip
также убедитесь, что у вас последняя
XCode
установлен (версия 4.4) сCommand Line Tools
.
это работает для меня
rm -f /usr/local/bin/easy_install brew reinstall python pip install --upgrade setuptools pip install --upgrade pip
у меня была аналогичная ошибка, за исключением того, что
sudo pip
не работает. Я использую установку" brew " python (которая символически связана с /usr / local / bin) и обнаружил, что проблема заключалась в том, что shebangs в файлах pip и easy_install были жестко закодированы в#!/usr/bin/python
вместо#!/usr/local/bin/python
, и поэтому вместо версии brew использовалась версия system python.Ура, Том
Я на самом деле не мог сделать то, что было предложено. Вместо этого мне пришлось выполнить:
xcode-select --install
затем я смог установить модуль ldap.
Я попробовал все ответы здесь, от переустановки easy_install до установки новой версии python, ничего не сработало для меня.
Я установил новую установку Python в папку/Library /Framework и символическую ссылку на нее из/usr/local /bin (по какой-то причине в моей системе была символическая ссылка из/Library/Framework / Python.framework to/System/Framework / Python.рамки.) Моя идея состояла в том, чтобы сохранить файлы /System/Library/Framework, которые будут использоваться системными командами в /usr/bin, и имейте/usr/local /bin указывает на другую "пользовательскую землю", установленную в/Library / Framework. Для этого :
переименовать / System/Library/Framework / Python.в рамках _OLD_Python.рамки
удалите все файлы python в /usr / local / bin (используя sudo rm / usr / local/bin / python*) и /usr/local/bin/pip* (но не трогайте /usr/bin)
переустановите python с официального сайта (http://www.python.org/getit/) ==> Это переустановит python в /Library / Framework, а не /System/Library / Framework
затем запустите профиль оболочки Applications/Python/Update.команда команда, которая будет убедиться, что ваш путь использует этот
затем воссоздайте символические ссылки в /usr / local / bin с помощью
ln-s ../../ Библиотека / Фреймворки / Python.фреймворк / версии / 2.7 / bin / python питон
наконец, переименуйте _OLD_Python.фреймворк обратно на Python.framework (потому что это путь /usr/bin/python указывает на)
введите "какой python" должен указывать на /Library/... а не / система / библиотека. Оттуда вы должны быть в состоянии переустановить easy_install и pip правильно.
вместо того, чтобы изменить право собственности, то можно просто изменить разрешения:
$ sudo chmod-R o+rX / Library/Python/2.7 / site.пакеты
на Маверикс, я нашел, что
ls -l `which python` /usr/local/bin/python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python
пока Пип показал
ls -l `which pip` /usr/local/bin/pip
я переименовал старый
pip
и создал символическую ссылку на соответствующий двоичный файл pip, и теперь все хорошо. Это, вероятно, не лучшее решение, но оно работает.
Я изменил разрешения для папки Python (от root до моего пользователя), и теперь все работает для меня:
sudo chown -R <your_user>:wheel /Library/Python/2.7/site-packages/
Не рекомендуется для компьютеров с несколькими пользователями.
у меня обычно была такая же проблема с некоторыми ссылками на проект
bonjour-py
в своемrequirements.txt
, не знал, что и как отслеживать это в данный момент.и кто-то сказал мне, что pip-tool. Это на самом деле отличная альтернатива, чтобы определить, что у вас есть, и если вы хотите обновить их. И в качестве бонуса он также проигнорировал
bonjour-py
ошибка.