pip не работает на hombrew python 2.7 install

Я установил 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 пипс

  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/ питон

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

4 ответа

Решение

В общем-то, 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, Especialy easy_install не удастся, если ссылка не существует.

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

easy_install pip

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

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

brew unlink python && brew link python

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

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

Не совсем ответ на первоначальный вопрос, но если кто-то окажется здесь, потому что установлен Homebrew python/pip больше не работают (т.е. 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 для получения дополнительной информации

По умолчанию Homebrew предоставляет пипс через: 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 должен работать сейчас.

Другие вопросы по тегам