сломанные easy_install и pip после обновления до OS X Mavericks

Обновился до OS X 10.9 Mavericks и установил XCode, Command Line Tools, XQuartz и т. д. Сейчас пытаюсь запустить pip install, но пишет, что дистрибутив не найден:

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

Поэтому я попытался установить pip с помощью файла easy_install. Оказывается, это тоже borked:

Traceback (most recent call last):
  File "/usr/local/bin/easy_install", 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 2607, in <module>
parse_requirements(__requires__), Environment()
  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: setuptools==1.1.6

Поэтому в некоторых других потоках говорится о переустановке setuptools с помощью sudo python ez_setup.py. Кажется, работает нормально:

Installed /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-1.1.6-py2.7.egg
Processing dependencies for setuptools==1.1.6
Finished processing dependencies for setuptools==1.1.6

Но при запуске пипа easy_install возникает та же ошибка pkg_resources.DistributionNotFound: setuptools==1.1.6. У кого-то еще есть такая проблема? Любые идеи, как это исправить?


person qualia365    schedule 16.01.2014    source источник
comment
Тот факт, что у вас есть /usr/local/bin/easy_install, означает, что вы добавили по крайней мере один дополнительный Python поверх тех, которые дала вам Apple, и вы сталкиваетесь с обычной путаницей пути, которая всегда поражает новичков Unix, которые делают это. Вам нужен сторонний Python? Если нет, то помните, откуда вы это взяли?   -  person abarnert    schedule 16.01.2014
comment
Кроме того, где вы взяли setuptools 1.1.6? IIRC, которому несколько месяцев, и он был актуален всего пару дней. Вы почти наверняка хотите 2.1. Но помимо этого, если установка сегодня захватывает что-то старое, это подразумевает что-то странное с вашим кэшированием и, возможно, еще что-то, что нужно очистить.   -  person abarnert    schedule 16.01.2014


Ответы (3)


  1. Установить easy_install:

    Загрузите модуль ez_setup.py с сайта https://pypi.python.org/pypi/setuptools.

    $ cd path/to/ez_setup.py
    $ python ez_setup.py
    
  2. Установить pip:

    $ sudo easy_install pip
    
person kylemclaren    schedule 13.02.2014
comment
У меня тайм-аут шлюза. Любые идеи, почему? wget python-distribute.org/distribute_setup.py --2014-09-19 14:47 :32-- python-distribute.org/distribute_setup.py Разрешение python-distribute.org. .. 88.191.140.69 Подключение к python-distribute.org|88.191.140.69|:80... подключено. HTTP-запрос отправлен, ожидается ответ... 504 Время ожидания шлюза 2014-09-19 14:51:33 ОШИБКА 504: Время ожидания шлюза истекло. - person sparrovv; 19.09.2014
comment
Похоже, что он переехал или сервер не работает, вам придется искать дистрибутив в другом месте. - person kylemclaren; 22.09.2014
comment
этот ответ теперь потенциально опасен, скваттеры захватили домен python-distribute.org, и он попытался доставить на мою машину некоторые сомнительные обновления Adobe Flash, когда я туда зашел. - person ashgromnies; 18.05.2015

попробуй sudo python -m easy_install pip

person Harry Lee    schedule 05.04.2016

Я столкнулся с похожей проблемой с git-review.

$ git review -s
Traceback (most recent call last):
  File "/usr/local/bin/git-review", line 11, in <module>
    sys.exit(main())
  File "/Library/Python/2.7/site-packages/git_review/cmd.py", line 1132, in main
    (os.path.split(sys.argv[0])[-1], get_version()))
  File "/Library/Python/2.7/site-packages/git_review/cmd.py", line 180, in get_version
    provider = pkg_resources.get_provider(requirement)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 197, in get_provider
    return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
  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: git-review

Команда git-review сообщила, что это ошибка pkg_resources, которую можно исправить. с участием

sudo pip install --upgrade setuptools

Это отлично сработало для меня.

person Heath Borders    schedule 08.10.2014
comment
Если вы поставили -1, не могли бы вы добавить комментарий, объясняющий, почему? - person Heath Borders; 29.10.2014
comment
У меня сработало, и не нужно sudo какой-то файл из интернета. - person ivanzoid; 17.06.2015