Как использовать установленный brew Python в качестве Python по умолчанию?

Я пытаюсь перейти на 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 flavour моим Python по умолчанию?

25 ответов

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

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

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

brew doctor

Выход:

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

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

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

$ brew link --overwrite python
Linking /usr/local/Cellar/python/2.7.3... 28 symlinks created
$ which python
/usr/local/bin/python

Для машин Apple Silicon путь немного отличается. После запуска brew install python, вы должны убедиться, что ваш ~/.zshrcиспользует правильные пути Homebrew:

      # Homebrew
eval "$(/opt/homebrew/bin/brew shellenv)"

# Homebrew: Python
export PATH="/opt/homebrew/opt/python/libexec/bin:$PATH"

Полученные результаты:

      % which python
/opt/homebrew/opt/python/libexec/bin/python

% python --version
Python 3.9.9

% which pip
/opt/homebrew/opt/python/libexec/bin/pip

% pip -V
pip 21.3.1 from /opt/homebrew/lib/python3.9/site-packages/pip (python 3.9)

Быстрая починка:

  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/

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

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

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

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. доморощенный используется для ссылки на Python /usr/local/share/python в старых версиях.

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

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

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

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

больше нажмите здесь: Выпуск № 89791

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

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

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

python сейчас указывает на python3, если тебе надо python 2 затем сделайте:brew install python@2 а затем в вашем файле.zshrc или.bashrcexport PATH="/usr/local/opt/python@2/libexec/bin:$PATH"Сейчас, pyhon --version = Python 2.7.14 и python3 --version = Python 3.6.4. Такое поведение я привык видеть в моем терминале.

Я полагаю, что есть способы сделать homebrew python по умолчанию, но, по моему мнению, правильный способ решения проблемы - не связываться с путями системного python: лучше создать virtualenv, в котором homebrew python будет использоваться по умолчанию (используя virtualenv - опция -Python). Используя такие инструменты, как python_select почти всегда плохая идея.

Добавить /usr/local/opt/python/libexec/bin прямо к вашему .bash_profile:

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

После этого все должно работать правильно.

Вместо этого используйте pyenv для установки и переключения между версиями Python. Я много лет использую rbenv, который делает то же самое, но для Ruby. До этого был ад управляющих версий.

Обратитесь к странице GitHub pyenv в инструкции по установке. В основном это выглядит так: - Установите pyenv с помощью homebrew.brew install pyenv- Добавьте функцию в конец сценария запуска оболочки, чтобы pyenv мог творить чудеса. echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

  • Используйте pyenv для установки любого необходимого количества различных версий Python. pyenv install 3.7.7.
  • Установите версию по умолчанию (глобальную) на только что установленную современную версию. pyenv global 3.7.7.
  • Если вы работаете над проектом, который должен использовать другую версию Python, изучите pyevn local. Это создает файл в папке вашего проекта, в котором указана версия Python. Pyenv будет переопределять глобальную версию Python версией в этом файле.

Просто делать:

brew install python
brew link python

После этого добавьте это в ваш bashrc или bash_profile:

alias python='/usr/local/bin/python2'

Наслаждайтесь!

попробуй это

      which python3

Попробуйте ввести python3вместо того, чтобы просто python

Вы можете редактировать /etc/paths. Вот мой:

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

Затем добавьте символическую ссылку для версии Python. В моем случае

$ cd /usr/local/bin
$ ln -s python3 python

Вуаля!

Приветствую вас! Мне нужно использовать версию Python 3.10, чтобы использовать ее новые функции. Мое решенное решение на 03.07.2022 выглядит следующим образом. Получайте удовольствие от написания кода на Python!

      » rm '/usr/local/bin/pip3.10'
» brew link python@3.10
» echo 'export PATH="/usr/local/opt/python@3.10/bin:$PATH"' >> ~/.zshrc
» python3
Python 3.10.5 (main, Jun 23 2022, 17:15:25) [Clang 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

В Mac OS X, если вы установили Python3 через Homebrew с помощьюbrew install python3, то вам нужно запустить через терминал следующую команду:

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

Это для последней версии Python 3.11. Обязательно отредактируйте команду в соответствии с вашей версией Python.

Если ты рыбья раковина

echo 'set -g fish_user_paths "/usr/local/opt/python/libexec/bin" $fish_user_paths' >> ~/.config/fish/config.fish

Ну, на случай, если кому-то понадобится что-то, что мне нужно, например, просто немного поиграть с Python, вы также можете вызвать его из терминала с помощью

      python3 my_python_file.py

учитывая, что установлен Python 3.x, в моем случае, конечно, с помощью Brew.

      brew link python

И вы должны создать/добавить псевдоним для python и поместить его в свой .zprofile (находится в папке Users/username, если вы нажмете Shift+command+.

Это должно указывать на место установки вашего доморощенного питона.

      alias python ='opt/homebrew/bin/python3'

Поскольку High Sierra, вам необходимо использовать:

sudo chown -R $(whoami) $(brew --prefix)/*

Это потому что /usr/local больше не может быть подавлен

Понятия не имею, что вы имеете в виду с Python по умолчанию. Я считаю плохой практикой заменять системный интерпретатор Python другой версией. Функциональность системы может в некоторой степени зависеть от системного Python и конкретных модулей или конкретной версии Python. Вместо этого установите ваши собственные установки Python в безопасном другом месте и отрегулируйте $PATH так, как вам нужно, чтобы вызывать вас Python через поиск пути вместо поиска Python по умолчанию.

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