Как использовать установленный brew Python в качестве Python по умолчанию? - PullRequest
163 голосов
/ 01 марта 2011

Я пытаюсь перейти на Homebrew (после использования fink и macport) в Mac OS X 10.6.2. Я установил Python 2.7 с

brew install python 

Проблема в том, что, в отличие от Macport, похоже, что утилиты python_select не существует, а мой mac python по умолчанию всегда по умолчанию

which python

дай мне

/usr/bin/python

и /usr/bin/python не является символической ссылкой

Как мне сделать Python Brew-аромат моим Python по умолчанию?

Ответы [ 16 ]

107 голосов
/ 11 сентября 2011

Поскольку вы используете Homebrew, следующая команда дает лучшую картинку:

brew doctor

Вывод:

==> / usr / bin встречается до / usr / local /bin Это означает, что системные программы будут использоваться вместо тех, которые предоставляет Homebrew.Это проблема, если вы, например.brew установил Python.

Попробуйте отредактировать ваш файл .bash_profile, чтобы поместить: / usr / local / bin перед / usr / bin в $ PATH.

79 голосов
/ 01 февраля 2013

См .: Как создать символическую ссылку на Python в Homebrew?

$ brew link --overwrite python
Linking /usr/local/Cellar/python/2.7.3... 28 symlinks created
$ which python
/usr/local/bin/python
59 голосов
/ 22 марта 2012

Быстрое исправление:

  1. Открыть /etc/paths
  2. Изменить порядок строк (наивысший приоритет сверху)

В моем случае /etc/paths выглядит так:

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

Если вы хотите узнать больше о путях в OSX, я нашел эту статью весьма полезной:

http://muttsnutts.github.com/blog/2011/09/12/manage-path-on-mac-os-x-lion/

40 голосов
/ 18 января 2018

Я сделал "brew install python" для OSX High Sierra. $PATH имел /usr/local/bin перед любым другим путем, но все же which python указывал на системный питон.

Когда я посмотрел глубже, я обнаружил, что на /usr/local/bin нет исполняемого файла python. Исполняемый файл называется python2. Чтобы решить эту проблему, создайте символическую ссылку python, указывающую на python2:

/usr/local/bin $: ln -s python2 python

34 голосов
/ 04 января 2018

Как подсказывает сам установщик homebrew, обязательно добавьте это в .bashrc или .zshrc:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"
23 голосов
/ 01 марта 2011

Homebrew НЕ заменяет вещи в "/ usr / bin".Вы просто захотите поставить "/ usr / local / bin" перед "/ usr / bin" на своем пути, а затем "какой питон" даст вам "/usr/local/bin/python".

Замена / usr / bin / python (или / usr / bin / ruby) крайне не рекомендуется.

17 голосов
/ 03 апреля 2018

python формула теперь использует python3 (сейчас v3.6.5), brew свяжет каталог :

/usr/local/opt/python -> ../Cellar/python/3.6.5

, а также двоичный файл :

/usr/local/bin/python3 -> ../Cellar/python/3.6.5/bin/python3

Если вам все еще нужно использовать python2.x, используйте:

brew install python@2

Чтобы использовать python доморощенного, просто поместите его каталог в PATH, для bash:

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

для рыбы:

set -x PATH /usr/local/opt/python/libexec/bin $PATH

Примечание:

  1. при этом будет затенена версия системы по умолчанию python
  2. homebrew раньше связывал python с /usr/local/share/python в более старых версиях.
12 голосов
/ 01 апреля 2012

Измените ваш $ PATH, добавьте это в ваш bashrc или bash_profile:

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

еще нажмите здесь: Issue # 89791

10 голосов
/ 01 марта 2011

Вам необходимо отредактировать переменную окружения PATH, чтобы убедиться, что везде, где находится доморощенный питон, ищется перед / usr / bin.Вы также можете настроить вещи в конфигурации оболочки так, чтобы переменная типа PYTHON была установлена ​​на желаемую версию python и вызывала $PYTHON вместо python из командной строки.

Кроме того, как указано в другом постере (и особенно на Mac), НЕ связывайтесь с питоном в / usr / bin, чтобы указать его на другую установку питона.Ты просто напрашиваешься на неприятности, если делаешь.

9 голосов
/ 03 октября 2016

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

...