Пип с использованием системы Python OSX - PullRequest
7 голосов
/ 28 мая 2011

Я установил python26, используя macports, поэтому правильный код python в моей системе равен /opt/local/bin/python

Однако, когда я делаю

sudo pip install <packagename>

Это дает мне

sudo pip install <somepackage>                                           
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.6/site-packages/pip-1.0.1-py2.6.egg/pip/basecommand.py", line 126, in main
    self.run(options, args)
  File "/Library/Python/2.6/site-packages/pip-1.0.1-py2.6.egg/pip/commands/install.py", line 215, in run
    import setuptools
ImportError: No module named setuptools

Storing complete log in /Users/navin/.pip/pip.log

Итак, я подозреваю, что он использует системный питон.Я установил дистрибутив (который содержит setuptools) через инструкции их сайта.Я также установил pip через установщик.Я каким-то образом сумел заткнуть setuptools для системного python, я думаю, вот почему у меня сейчас такая проблема: (

Что мне сделать, чтобы пип снова заработал?

Ответы [ 5 ]

14 голосов
/ 17 февраля 2013

Подводя итог вышесказанному, установка pip с использованием Macports с:

sudo port install py27-pip

приводит к установке пакета с именем py27-pip.

Однако /opt/local/bin/pip не установлен, и port select pip или port select py27-pip оба сбой (в отличие от port select python). Менять вещи в каталоге bin другого дистрибутива не рекомендуется.

Обратите внимание, что ссылки /usr/bin python указывают на предустановленный python от Apple, /usr/local/bin указывают на те, которые установлены MacPython с python.org , тогда как /opt/local/bin - это место, где Macports устанавливает свои ссылки , Фактические установки библиотеки можно найти с помощью ls -ls, примененного к различным файлам Python в каждом каталоге bin).

Чтобы обеспечить вызов файлов Macports, экспортируйте путь для Macports последним в вашем .bash_profile. Например, если вы установили Macports, а затем случайно установили бинарный дистрибутив из python.org, у вас в конце концов останется его путь ~/.bash_profile, поэтому он будет первым в переменной пути, и Macpython будет затенять Macports.

Убедившись, что пути заданы надлежащим образом, система по-прежнему не может найти команду pip в каталоге Macports bin, поскольку она установлена ​​как pip-2.7 и автоматически не создается pip.

В результате система продолжает поиск пути и, например, если Macpython добавляется к пути где-то позже и в нем установлен pip, тогда этот пункт появится.

Этого можно избежать с помощью команды, предложенной выше:

sudo ln -s /opt/local/bin/pip-2.7 /opt/local/bin/pip
12 голосов
/ 28 мая 2011

Удалите pip из / usr / local / bin с помощью sudo rm /usr/local/bin/pip.

Если вы установили pip с macports, то which pip должно отобразить /opt/local/bin/pip.Если нет, установите pip снова, следуя инструкциям здесь .Пока which python показывает установку /opt/local, она должна работать.Если не , вам нужно отредактировать переменную PATH env.

3 голосов
/ 26 июля 2014

Вот мои настройки, чтобы заставить pip работать с macports и установить py26-pip в качестве пипа по умолчанию

sudo port install py26-pip && sudo port select --set pip py26-pip

после завершения установки, чтобы просмотреть справочную информацию для pip

pip --help

после того, как вам может понадобиться обновить путь, чтобы включить файлы bin, установленные с помощью pip edit .bash_profile, чтобы включить что-то вроде

export PATH=/opt/local/bin:/opt/local/sbin:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin:$PATH
1 голос
/ 28 мая 2011

Вы должны установить python и pip в / opt / local / bin / до тех, которые установлены в /usr/local/bin/.

Кроме того, вы должны проверить, чтобы выполнить which python и был ли пункт установлен в /opt/local/bin/pip.

0 голосов
/ 07 марта 2012

Я обнаружил, что мне нужно ln -s /opt/local/bin/pip-2.7 /opt/local/bin/pip. По какой-то причине macports не создал эту ссылку, даже когда вы пытаетесь активировать эту версию python или pip.

...