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   68  

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 с homebrew:brew install python

Я изменил разрешения для папки Python (от root до моего пользователя), и теперь все работает для меня:

sudo chown -R <your_user>:wheel /Library/Python/2.7/site-packages/

Не рекомендуется для компьютеров с несколькими пользователями.

у меня обычно была такая же проблема с некоторыми ссылками на проект bonjour-py в своем requirements.txt, не знал, что и как отслеживать это в данный момент.

и кто-то сказал мне, что pip-tool. Это на самом деле отличная альтернатива, чтобы определить, что у вас есть, и если вы хотите обновить их. И в качестве бонуса он также проигнорировал bonjour-py ошибка.