Spec-Zone.ru › Homebrew

Python

На этой странице описано, как Homebrew работает с Python для пользователей. Советы по написанию формул для установки пакетов, написанных на Python, см. в разделе Python для авторов формул.

Homebrew установит необходимую версию Python 3, чтобы ваши пакеты работали. Python 2 (или 1) не поддерживается.

Python 3

Homebrew предоставляет формулы для новейших поддерживаемых выпусков Python 3 (python@3.y) (https://devguide.python.org/versions/). Мы сохраняем более старые версии python@3.y согласно нашим рекомендациям по версионированным формулам.

Важно: Python может быть обновлён до более новой версии в любое время. Если для виртуальных окружений вам необходима стабильность минорных версий или версий исправлений, рассмотрите возможность использования менеджера версий, например pyenv.

Исполняемые файлы организованы следующим образом:

  • python3 указывает на Python 3.y от Homebrew (если установлен)
  • pip3 указывает на pip для Python 3.y от Homebrew (если установлен)

Неверсионированные символические ссылки для python, python-config, pip и т. д. устанавливаются здесь:

$(brew --prefix python)/libexec/bin

Внимание! Исполняемые файлы не всегда указывают на последнюю версию Python 3: между выходом нового выпуска Python 3 и переходом репозитория homebrew-core на новую версию всегда проходит некоторое время.

Setuptools, pip и т. д.

Формулы Python устанавливают pip (как pip3). Python@3.11 и более старые формулы Python также устанавливают Setuptools.

Начиная с Python 3.12, встроенные пакеты Python следует обновлять переустановкой Python, установленного через Homebrew. Для более старых формул Python их можно обновить, как описано ниже.

Внимание! Приведённые ниже действия не работают с Python 3.12 или новее от Homebrew. Если вам нужна версия pip или setuptools новее той, что поставляется с Python от Homebrew, вы должны использовать виртуальное окружение или другой механизм изоляции, как описано ниже.

Setuptools можно обновить с помощью pip без переустановки Python, установленного через Homebrew:

python3 -m pip install --upgrade setuptools

Аналогичным образом, pip можно использовать для самообновления:

python3 -m pip install --upgrade pip

site-packages и PYTHONPATH

site-packages — это каталог, содержащий модули Python, включая привязки, установленные другими формулами. Homebrew создаёт его здесь:

$(brew --prefix)/lib/pythonX.Y/site-packages

Например, для Python 3.y.z он будет находиться по адресу /opt/homebrew/lib/python3.y/site-packages на компьютерах Apple Silicon.

Python 3.y также ищет модули в следующих каталогах:

  • /Library/Python/3.y/site-packages
  • ~/Library/Python/3.y/lib/python/site-packages

Каталог site-packages от Homebrew создаётся впервые (1) после установки любой формулы Homebrew с привязками Python или (2) при выполнении brew install python.

Почему именно здесь?

Такое расположение позволяет сохранять ваши модули при обновлении (до следующей минорной версии) или переустановке Python. Кроме того, у Homebrew действует строгое правило: ничего не записывать за пределами brew --prefix, чтобы не засорять систему.

Привязки Python, предоставляемые Homebrew

Некоторые формулы предоставляют привязки Python.

Правила для привязок Python, установленных не через Homebrew

Их следует устанавливать с помощью pip install <package>. Чтобы найти нужный пакет, можно воспользоваться поиском: https://pypi.org/search.

Начиная с Python 3.12, мы настоятельно рекомендуем использовать для этого отдельное виртуальное окружение (см. раздел о PEP 668 ниже).

Модули Python, установленные через Homebrew

Для Python, установленного через Homebrew, модули, установленные с помощью pip или python3 setup.py install, будут помещены в каталог $(brew --prefix)/lib/pythonX.Y/site-packages (описанный выше). Исполняемые скрипты Python будут находиться в $(brew --prefix)/bin.

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

CFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" pip install <package>

PEP 668 и виртуальные окружения

Начиная с Python 3.12, Homebrew следует требованиям PEP 668.

Если вы хотите установить пакет Python, не упакованный для Homebrew (например, из PyPI):

  • создайте виртуальное окружение с помощью python3 -m venv path/to/venv. Затем используйте path/to/venv/bin/python и path/to/venv/bin/pip.
  • или используйте pipx install xyz, который сам будет управлять виртуальным окружением. Установить pipx можно, выполнив brew install pipx. При использовании pipx для установки приложения Python виртуальное окружение будет создано автоматически.

Некоторые пакеты Python можно установить в виде формул с помощью brew install xyz. Мы не рекомендуем использовать эти формулы и вместо этого советуем устанавливать пакеты с помощью pip внутри виртуального окружения. Такие формулы Python для всей системы часто специфичны для Homebrew и используются в качестве зависимостей других формул Homebrew. Не рекомендуется полагаться на них.

Почему Python от Homebrew устанавливается как зависимость?

Формулы, в которых объявлена безусловная зависимость от формулы python, собираются в виде бутылок для Python 3.y от Homebrew и требуют его установки.

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/Homebrew-and-Python

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API