1

Я пытаюсь установить Homebrew с Python на чистую установку macOS High Sierra. HomeBrew успешно установлен, как и python, pip и т.д., В папку /usr /local /bin, и я отредактировал /etc/paths чтобы /usr/local/bin находился вверху перед /usr/bin но терминал все еще остается показывая /usr/bin в качестве версии Python при использовании which python . Я попытался перезапустить терминал и систему.

Точно такая же настройка работала нормально, прежде чем я переустановил ОС.

/etc/paths выглядит так

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

РЕДАКТИРОВАТЬ: echo $PATH показывает /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin но which python все еще показывает /usr/bin/python

1 ответ1

1

Изменение системных путей (в /etc/paths) не рекомендуется и не нужно.

Если вы установили Python через Homebrew (brew install python и brew install python3), вам следует внимательно прочитать предупреждения:

brew info python
brew info python3

Почему обработка python Homebrew такая особенная?

Ознакомьтесь с документацией по Homebrew и Python , так как Homebrew создает несколько символических ссылок в разных местах и использует следующее соглашение:

Homebrew предоставляет одну формулу для Python 2.7.x и другую для Python 3.x. Исполняемые файлы организованы следующим образом, так что Python 2 и Python 3 могут быть установлены без конфликтов:

  • python указывает на систему MacOS Python (без ручной модификации PATH )
  • python2 указывает на Python Homebrew 2.7.x (если установлен)
  • python3 указывает на Python 3.x Homebrew (если установлен)
  • pip2 указывает на pip доморощенного в Python 2.7.x (если он установлен)
  • pip3 указывает на pip доморощенного в Python 3.x (если он установлен)

Причина этого в том, что вы не хотите, чтобы python умолчанию использовал Homebrew Python, если он был установлен как зависимость какой-то другой формулы, что может вызвать проблемы в сценариях, которые просто используют /usr/bin/env python в своей строке shebang.

Также обратите внимание, что это поведение Homebrew/Python может измениться в какой-то момент в будущем из-за устаревшей природы Python 2.

Но я хочу, чтобы python указывал на python Homebrew!

Итак, если вы действительно хотите, чтобы python ссылался на Python 2.7 Homebrew вместо системного Python, вы должны добавить это к своему $PATH в ~/.bash_profile:

export PATH=/usr/local/opt/python/libexec/bin:$PATH

... и оставьте ваши /etc/paths как они были раньше.

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