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
Ни один из которых не является исполняемым.
Я был бы признателен за помощь тех, кто имеет больше опыта, чем я.
Изменить: я попробовал шаги, предложенные Марко:
Вот результаты к шагам:
echo $PATH показывает несколько каталогов: /usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/ OPT /X11/ бен: / USR / местные / MySQL / бен
который -a Python возвращает: / usr / local / bin / python / usr / local / bin / python
ничего не возвращается за что -a пипс
- какой python возвращает: / usr / local / bin / python
за который пункт не возвращается
- 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
должен работать сейчас.