Ответ 1
Используйте easy_install
для обновления pip
до последней версии:
sudo easy_install -U pip
Также убедитесь, что у вас установлена последняя XCode
(версия 4.4) с Command Line Tools
.
Сделал обновление до 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 (new?) Находится в /Library/Frameworks/..:
$ which python
/Library/Frameworks/Python.framework/Versions/Current/bin/python
Любая идея, как избавиться от sudo?
Используйте 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
, и поэтому использовала версию python для системы вместо версии brew.
Cheers, Том
На самом деле я не мог сделать то, что было предложено. Вместо этого я должен был выполнить:
xcode-select --install
Затем мне удалось установить модуль ldap.
Я попробовал все ответы здесь, переустановил easy_install для установки новой версии python, для меня ничего не работало.
Я установил новую установку Python в папку /Library/Frameworks и символически привязал ее к /usr/local/bin (по какой-то причине моя система имела символическую ссылку из /Library/Frameworks/Python. framework для /System/Frameworks/Python.framework). Моя идея состояла в том, чтобы файлы /System/Library/Frameworks использовались системными командами в /usr/bin, а/usr/local/bin указывали на установку "пользовательской земли" в /Library/Frameworks. Для этого:
переименовать/System/Library/Framework/Python.framework в _OLD_Python.framework
удалить каждый файл 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
Затем запустите команду Profile/Python/Update Shell Profile.command, которая будет гарантировать, что ваш путь использует этот
Затем заново создайте символические ссылки в /usr/local/bin, используя
ln -s../../Library/Frameworks/Python.framework/Versions/2.7/bin/python python
Завершите, переименуйте _OLD_Python.framework обратно в Python.framework(потому что указывает путь /usr/bin/python )
Ввод "какой питон" должен указывать на /Library/... и not/System/Library. Оттуда вы сможете правильно установить easy_install и pip.
Вместо изменения права собственности можно просто изменить разрешения:
$sudo chmod -R o + rX/Library/Python/2.7/site.packages
В Mavericks я обнаружил, что
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
и создал символическую ссылку на правильный бинарный файл, и теперь все хорошо. Это, вероятно, не лучшее решение, но оно работает.
Я исправил это, переустановив 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
.