Python
Эта страница описывает, как Python обрабатывается в Homebrew для пользователей. Обратитесь к Python для авторов формул за советами по написанию формул для установки пакетов, написанных на Python.
Homebrew должен работать с любым CPython и по умолчанию использует системный Python macOS.
Homebrew предоставляет формулы для установки Python 3.y. Формула python@2 была предоставлена до конца 2019 года, после чего она была удалена из-за устаревания Python 2.
Важно: Если вы решите использовать Python, который не является ни одним из этих двух (системный Python или установленный через Homebrew), команда Homebrew не может поддерживать любые сбои, которые могут возникнуть.
Python 3.y
Homebrew предоставляет формулы для поддерживаемых релизов Python 3.y (python@3.y).
Важно: Python может быть обновлён до новой версии в любое время. Рассмотрите возможность использования менеджера версий, такого как pyenv , если вам нужна стабильность мажорных или патчевых версий для виртуальных сред.
Исполняемые файлы организованы следующим образом:
-
python3указывает на Python 3.y Homebrew (если установлен) -
pip3указывает на pip Python 3.y Homebrew (если установлен)
Неверсионированные символические ссылки для python, python-config, pip и т. д. устанавливаются здесь:
$(brew --prefix)/opt/python/libexec/bin
Setuptools, Pip и т. д.
Формулы Python устанавливают pip (как pip3) и Setuptools.
Setuptools можно обновить через pip3, не переустанавливая Python:
python3 -m pip install --upgrade setuptools
Аналогично, pip3 можно использовать для обновления самого себя через:
python3 -m pip install --upgrade pip
site-packages и PYTHONPATH
site-packages — это директория, которая содержит модули Python, включая привязки, установленные другими формулами. Homebrew создаёт её здесь:
$(brew --prefix)/lib/pythonX.Y/site-packages
Таким образом, для Python 3.y.z вы найдёте его в /usr/local/lib/python3.y/site-packages.
Python 3.y также ищет модули в:
/Library/Python/3.y/site-packages~/Library/Python/3.y/lib/python/site-packages
Директория Homebrew site-packages создаётся (1) после установки любых формул Homebrew с привязками Python или (2) при brew install python.
Почему здесь?
Такое расположение сохраняет ваши модули между (незначительными) обновлениями или переустановкой Python. Кроме того, Homebrew строго соблюдает политику, не записывая ничего вне brew --prefix, чтобы не засорять вашу систему.
Привязки Python, предоставленные Homebrew
Некоторые формулы предоставляют привязки Python.
Предупреждение! Python может аварийно завершить работу (см. Общие проблемы), когда вы import <module> из установленного через Homebrew Python, если вы запустили brew install <formula_with_python_bindings> для системного Python. Если вы решите переключиться на установленный через Homebrew Python, то переустановите все формулы с привязками Python (например, pyside, wxwidgets, pyqt, pygobject3, opencv, vtk и boost-python).
Политика для привязок Python, не установленных через Homebrew
Их следует установить через pip install <package>. Чтобы узнать, вы можете использовать pip search или https://pypi.org.
Примечание: Системный Python macOS не предоставляет pip. Следуйте документации pip для установки его для вашего системного Python, если вам это нужно.
Модули Python, установленные через Homebrew
Для установленного через Homebrew Python модули, установленные с помощью pip3 или 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>
Virtualenv
Предупреждение! Когда вы brew install формулы, которые предоставляют привязки Python, вы не должны находиться в активной виртуальной среде.
Активируйте virtualenv после установки, или установите в новом окне терминала. Это обеспечит установку модулей Python в site-packages Homebrew, а не в виртуальную среду.
Virtualenv имеет переключатель --system-site-packages для доступа к «глобальным» (т. е. Homebrew) site-packages изнутри virtualenv.
Почему 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