13

Я установил python, используя homebrew, и я не могу вызвать pip из bash. Я попытался изменить мой .bash_profile, чтобы включить /usr /local /bin /python и /usr local /share /python безрезультатно.

Когда я использую команду bash:

find / -name 'pip'

Единственные результаты, которые я получаю:

/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip
/Users/Ivan/Library/Caches/pip
/Users/Ivan/Library/Logs/pip
/usr/local/Cellar/python/2.7.9/libexec/pip
/usr/local/Cellar/python/2.7.9/libexec/pip/pip
/usr/local/lib/python2.7/site-packages/pip

Ни один из которых не является исполняемым.

Я действительно не знаю, куда указывать мой $ PATH, так как не могу найти исполняемый файл pip. Когда я открою

/usr/local/lib/python2.7/site-packages/pip

или же

/usr/local/Cellar/python/2.7.9/libexec/pip/pip

Я нахожу следующие файлы:

__init__.py         commands            operations
__init__.pyc        compat              pep425tags.py
__main__.py         download.py         pep425tags.pyc
__main__.pyc        download.pyc        req
_vendor             exceptions.py       status_codes.py
basecommand.py      exceptions.pyc      status_codes.pyc
basecommand.pyc     index.py            utils
baseparser.py       index.pyc           vcs
baseparser.pyc      locations.py        wheel.py
cmdoptions.py       locations.pyc       wheel.pyc
cmdoptions.pyc      models

Ни один из которых не является исполняемым.

Я был бы признателен за помощь тех, кто имеет больше опыта, чем я.

Изменить: я попробовал шаги, предложенные Марко:

Вот результаты к шагам:

  1. echo $ PATH показывает несколько каталогов:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/ OPT / X11 / бен:/ USR / местные / MySQL / бен

  2. который -a Python возвращает:/usr/local/bin / python /usr/local/bin / python

ничего не возвращается за что -a pip

  1. какой python возвращает:/usr/local/bin/python

за который пункт не возвращается

  1. ls -l $(какой python) возвращает один каталог: lrwxr-xr-x 1 Ivan admin 33 17 мая 08:59 /usr /local /bin /python -> ../Cellar/python/2.7.9/bin/python

ls -l $(which pip) возвращает несколько, включая файлы python, которые я показал в моем исходном посте

4 ответа4

19

Обычно homebrew устанавливает formula в /usr/local/Cellar/formula а затем размещает ссылку на /usr/local/bin/formula .

Чтобы использовать установленные формулы, убедитесь, что /usr/local/bin находится в вашем $PATH . Покажите свой $PATH , набрав

echo $PATH

Если /usr/local/bin отсутствует в вашем $PATH , поместите эту строку в конец файла ~/.profile .

export PATH="/usr/local/bin:$PATH"

Теперь проверьте, какие pythons находятся в вашей OSX, набрав:

which -a python

Должен быть один питон в /usr/bin/ (яблочный питон) и один в /usr/local/bin/ который является доморощенным питоном.

which python

покажет вам, какой питон находится первым в вашем $PATH и будет выполнен, когда вы вызовете python .

Если вы хотите узнать, где находится исполняемый файл, покажите его, набрав

ls -l $(which python)

Это может выглядеть так: корневое колесо lrwxr-xr-x 1 68 7 мая 13:22 python -> /usr /local /bin /python

Это будет работать и для pip .

Если вы покажете результаты этих шагов, мы, вероятно, поможем вам гораздо проще.

-- ОБНОВИТЬ --

У вас есть /usr/local/bin/python связанный с /usr/local/Cellar/python/2.7.9/bin/python . -> brew install python работал.

покажите, установлен ли pip , набрав

brew list python | grep pip

Тебе следует увидеть

/usr/local/Cellar/python/2.7.9/bin/pip

Если нет, проверьте, есть ли ссылки, которые не выполняются при brew install . Сказал вам что-то вроде этого:

"Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local"

Чтобы заставить ссылку и перезаписать все конфликтующие файлы:

brew link --overwrite python

Чтобы вывести список всех файлов, которые будут удалены:

brew link --overwrite --dry-run python

** НЕТ стандартного Apple /usr/bin/python **

ссылка с /usr/local/Cellar/python/2.7.9/bin/python на /usr/bin/python

ln -s /usr/local/Cellar/python/2.7.9/bin/python /usr/bin/python

Это необходимо для всех скриптов Python, начинающихся с #!/usr/bin/python . В частности, easy_install потерпит неудачу, если ссылки там нет.

Теперь вы можете запустить

easy_install pip

Надеюсь, ты добиваешься прогресса

5

Если brew управляет вашей установкой Python, а pip больше не является символической ссылкой (т.е. вы набираете "which pip" и не получаете результатов), попробуйте это из своего домашнего каталога:

brew unlink python && brew link python

Не уверен, что старый метод работает больше (он не работал на моей машине).

Теперь подтвердите, что он действительно указывает на вашу установку 2.7 с помощью pip --version (в выводе каталога будет указана основная версия python).

3

На самом деле это не ответ на первоначальный вопрос, но если кто-то окажется здесь, потому что его python/pip установленный в Homebrew, больше не работает (т.е. python указывает на системный python, а pip не найден), то причина может быть недавней (летом 2017) Изменение способа установки и ссылки Homebrew на python.

Решение состоит в том, чтобы добавить следующее в ~/.bash_profile и / или ~/.zshrc:

export PATH="$(brew --prefix)/opt/python/libexec/bin:$PATH"

Это заставит python указывать на варочную версию python, а также даст вам pip . См. Раздел предостережений в разделе brew info python и https://github.com/Homebrew/homebrew-core/issues/15746 для получения дополнительной информации.

2

По умолчанию Homebrew предоставляет pip через: brew install python . Тем не менее, у вас будет два Pythons, установленных на вашем Mac, вы можете установить его через:

sudo easy_install pip

Чтобы проверить, какие файлы установлены с вашим пакетом Python, попробуйте:

$ brew list python
/usr/local/Cellar/python/2.7.9/bin/pip
/usr/local/Cellar/python/2.7.9/bin/pip2
/usr/local/Cellar/python/2.7.9/bin/pip2.7
...

который должен состоять из pip .

После установки вы должны сделать символическую ссылку на установленные файлы вашей формулы:

brew link python

которые должны создавать правильные символические ссылки (такие как /usr/local/bin/pip указывающие на ваш Cellar/python/2.?.?/bin/pip)

Если у вас есть проблема с разрешением, вы можете исправить ее:

sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew

и убедитесь, что ваш пользователь находится в группе администраторов (id -Gn $USER).

После исправления разрешений не используйте sudo при использовании команды brew .

Затем снова связать его:

brew unlink python && brew link python

Чтобы протестировать пробный запуск, отсоедините и запустите: brew link -n python чтобы увидеть ссылки на файлы, на которые ссылается brew .

После успешного установления связи убедитесь, что в системной переменной PATH есть /usr/local , если нет, добавьте:

export PATH=/usr/local/sbin:/usr/local/bin:$PATH

в ваш файл ~/.bashrc .

В случае успеха, ваш pip должен работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .