OSX Mavericks сломал pip и virtualenv

Обновлено до OSX Mavericks и все сломалось. Я попробовал трюк "sudo easy_install pip", и он, кажется, купит пип в другом месте:

Best match: pip 1.4.1
Processing pip-1.4.1-py2.7.egg
pip 1.4.1 is already the active version in easy-install.pth
Installing pip script to /Library/Frameworks/Python.framework/Versions/2.7/bin
Installing pip-2.7 script to /Library/Frameworks/Python.framework/Versions/2.7/bin
Using /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.4.1-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip

pip throws:

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

Ответ 1

Возможно, вы использовали easy_install для установки pip, и смесь обоих инструментов управления пакетами py привела к проблеме pkg_resources.DistributionNotFound. Чтобы исправить это, запустите:

easy_install --upgrade pip

Ответ 2

Я бы очень рекомендовал использовать Homebrew - http://brew.sh/ для установки Python на OSX. "Пип" и "easy_install" настроены правильно, и вам никогда не придется использовать sudo для установки каких-либо пакетов. Это один из основополагающих принципов Homebrew, который я люблю.

Ответ 3

После перехода на Maverick откройте Xcode. Он должен предложить вам автоматически переустановить необходимые компоненты средств командной строки.

Затем используйте Homebrew, чтобы проверить: brew doctor

Вероятно, необходимо установить CLT, и в этом случае:

xcode-select --install должен сделать это

Ответ 4

  • Я удалил pip с помощью easy_install -m pip. Вам может понадобиться sudo easy_install -m pip.
  • Я удалил каталоги яйца из папки моих сайтов.
  • Затем я сделал следующее:

    brew install openssl
    brew link openssl --force
    brew uninstall python
    brew install python --with-brewed-openssl
    

Это получилось обратно и запущено, как было установлено (re) с Python, используя Homebrew. Конечно, связывание openssl таким образом означает, что я олл-ин с Homebrew на Mac, и это нормально со мной!

Ответ 5

Я бы посоветовал не устанавливать brew или fink или macports только для дополнения или "исправления" пакетов, которые вы получаете от Apple, например Python. В конечном итоге вы управляете двумя программными средами, и всякий раз, когда вы обновляете любой из них, может произойти "интересное".

В этом конкретном случае решение Трина sudo easy_install --upgrade pip представляется намного проще. Следовательно, +1 от меня: -)

Конечно, эти дополнительные среды могут быть полезны, если вы хотите установить (много) вещи, которые вы не получаете от Apple. Цена за оплату заключается в том, что тонкие взаимодействия между средами Apple и не Apple могут вызвать неприятные сюрпризы. См. Предупреждения в некоторых комментариях выше.

В конце дня это сводится к личным предпочтениям и приоритетам.

Ответ 6

Ни один из ваших опубликованных решений не работал - я загрузил патч с официального сайта Python, который, я думаю, повторно установил его и, похоже, исправил его.