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