Я установил 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
Ни один из них не является исполняемым файлом.
Я был бы признателен за помощь любого человека с большим опытом, чем у меня.
Редактировать: Я попробовал шаги, предложенные Марко:
Вот результаты по шагам:
echo $PATH показывает несколько каталогов: /usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/opt/X11/bin:/usr/local/mysql/bin
что -a python возвращает: /usr/local/bin/python /usr/local/bin/python
ничего не возвращается, для чего -a pip
- что возвращает python: /usr/local/bin/python
ничего не возвращается для какого пункта
- ls -l $(which python) возвращает один каталог: lrwxr-xr-x 1 Иван админ 33 17 мая 08:59 /usr/local/bin/python -> ../Cellar/python/2.7.9/bin/python
ls -l $(which pip) возвращает несколько, включая файлы Python, которые я показал в своем исходном сообщении
решение1
Обычно 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/
(Apple python) и один, /usr/local/bin/
где находится Homebrew python.
which python
покажет вам, какой Python найден первым в вашем $PATH
файле и будет выполнен при вызове python
.
Если вы хотите узнать, где находится исполняемый файл, покажите его, введя команду
ls -l $(which python)
Это может выглядеть так: lrwxr-xr-x 1 root wheel 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
Надеюсь, ты делаешь успехи.
решение2
Если brew управляет вашей установкой Python, а pip больше не имеет символической ссылки (т. е. вы вводите «which pip» и не получаете результатов), попробуйте выполнить это из вашего домашнего каталога:
brew unlink python && brew link python
Не уверен, работает ли старый метод сейчас (на моем компьютере он не работал).
Теперь убедитесь, что он действительно указывает на вашу установку 2.7 pip --version
(в выходных данных каталога будет указана основная версия Python).
решение3
На самом деле это не ответ на изначальный вопрос, но если кто-то попал сюда из-за того, что установленный им Homebrew python/pip
больше не работает (т. е. python
указывает на системный Python и pip
не находится), то причиной может быть недавнее (лето 2017 г.) изменение в способе установки и компоновки Python в Homebrew.
Решение состоит в том, чтобы добавить следующее к ~/.bash_profile
и/или ~/.zshrc
:
export PATH="$(brew --prefix)/opt/python/libexec/bin:$PATH"
Это укажет python
на версию brew python и также даст вам pip
. См. раздел предостережений ниже brew info python
иhttps://github.com/Homebrew/homebrew-core/issues/15746Чтобы получить больше информации
решение4
По умолчанию Homebrew предоставляет pip через: brew install python
. Однако тогда на вашем Mac будет установлено два Python, вы можете установить его через:
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
теперь все должно работать.