Установка модулей Python

Электронная почта:

distutils-sig@python.org

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

Это позволяет пользователям Python эффективно обмениваться информацией и сотрудничать, пользуясь уже созданными другими решениями общих (а иногда и редких!) проблем, а также внося свой вклад в общий пул.

Это руководство охватывает часть процесса установки. Руководство по созданию и совместному использованию собственных проектов Python см. в Python packaging user guide.

Примечание

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

Ключевые термины

  • pip является предпочтительной программой установки. Начиная с Python 3.4, она включается по умолчанию в бинарные инсталляторы Python.

  • Виртуальная среда* - это полуизолированная среда Python, которая позволяет устанавливать пакеты для использования конкретным приложением, а не устанавливать их на всю систему.

  • venv - это стандартный инструмент для создания виртуальных сред, который входит в состав Python начиная с Python 3.3. Начиная с Python 3.4, по умолчанию во все созданные виртуальные среды устанавливается pip.

  • virtualenv - это сторонняя альтернатива (и предшественник) venv. Она позволяет использовать виртуальные среды на версиях Python до 3.4, которые либо вообще не предоставляют venv, либо не могут автоматически установить pip в созданные среды.

  • Python Package Index - это публичный репозиторий лицензионных пакетов с открытым исходным кодом, доступных для использования другими пользователями Python.

  • Python Packaging Authority - группа разработчиков и авторов документации, отвечающая за поддержку и развитие стандартных средств упаковки и связанных с ними стандартов метаданных и форматов файлов. Они поддерживают различные инструменты, документацию и трекеры проблем на GitHub.

  • distutils - это оригинальная система сборки и распространения, впервые добавленная в стандартную библиотеку Python в 1998 году. Хотя прямое использование distutils постепенно прекращается, она заложила основу для текущей инфраструктуры упаковки и распространения, и не только остается частью стандартной библиотеки, но и продолжает жить в других именах (например, в названии списка рассылки, используемого для координации разработки стандартов упаковки Python).

Изменено в версии 3.5: Теперь для создания виртуальных сред рекомендуется использовать значение venv.

Базовое использование

Все стандартные инструменты для упаковки предназначены для использования из командной строки.

Следующая команда установит последнюю версию модуля и его зависимостей из индекса пакетов Python:

python -m pip install SomePackage

Примечание

Для пользователей POSIX (включая пользователей macOS и Linux) примеры в этом руководстве предполагают использование virtual environment.

Для пользователей Windows в примерах этого руководства предполагается, что при установке Python была выбрана опция настройки системной переменной окружения PATH.

Также можно указать точную или минимальную версию непосредственно в командной строке. При использовании операторов сравнения, таких как >, < или других специальных символов, которые интерпретируются shell, имя пакета и версия должны быть заключены в двойные кавычки:

python -m pip install SomePackage==1.0.4    # specific version
python -m pip install "SomePackage>=1.0.4"  # minimum version

Обычно, если подходящий модуль уже установлен, попытка установить его снова не даст никаких результатов. Обновление существующих модулей должно быть запрошено явно:

python -m pip install --upgrade SomePackage

Дополнительную информацию и ресурсы, касающиеся pip и его возможностей, можно найти в разделе Python Packaging User Guide.

Создание виртуальных сред осуществляется с помощью модуля venv. Для установки пакетов в активную виртуальную среду используются команды, показанные выше.

Как мне…?

Это краткие ответы или ссылки на некоторые распространенные задачи.

… установить pip в версиях Python, предшествующих Python 3.4?

Python начал поставлять pip только с Python 3.4. Для более ранних версий pip должен быть «загружен», как описано в руководстве пользователя по упаковке Python.

… устанавливать пакеты только для текущего пользователя?

Передача опции --user в python -m pip install приведет к установке пакета только для текущего пользователя, а не для всех пользователей системы.

… установить научные пакеты Python?

Ряд научных пакетов Python имеет сложные бинарные зависимости, и в настоящее время их нелегко установить с помощью pip. На данный момент пользователям часто проще установить эти пакеты с помощью other means, чем пытаться установить их с помощью pip.

… работать с несколькими версиями Python, установленными параллельно?

В Linux, macOS и других POSIX-системах используйте версионные команды Python в сочетании с ключом -m для запуска соответствующей копии pip:

python2   -m pip install SomePackage  # default Python 2
python2.7 -m pip install SomePackage  # specifically Python 2.7
python3   -m pip install SomePackage  # default Python 3
python3.4 -m pip install SomePackage  # specifically Python 3.4

Также могут быть доступны команды pip с соответствующими версиями.

В Windows используйте py Python в сочетании с переключателем -m:

py -2   -m pip install SomePackage  # default Python 2
py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3   -m pip install SomePackage  # default Python 3
py -3.4 -m pip install SomePackage  # specifically Python 3.4

Общие проблемы при установке

Установка в систему Python в Linux

В системах Linux установка Python обычно входит в состав дистрибутива. Установка в эту установку Python требует root-доступа к системе и может нарушить работу системного менеджера пакетов и других компонентов системы, если какой-либо компонент неожиданно обновляется с помощью pip.

В таких системах при установке пакетов с pip часто лучше использовать виртуальное окружение или установку для каждого пользователя.

Pip не установлен

Возможно, pip не устанавливается по умолчанию. Одним из возможных вариантов исправления является:

python -m ensurepip --default-pip

Также есть дополнительные ресурсы для installing pip..

Установка двоичных расширений

Как правило, Python в значительной степени опирается на распространение с исходным кодом, и конечные пользователи должны компилировать модули расширения из исходного кода в процессе установки.

С появлением поддержки двоичного формата wheel и возможности публиковать колеса, по крайней мере, для Windows и macOS через Python Package Index, эта проблема, как ожидается, со временем уменьшится, поскольку пользователи смогут более регулярно устанавливать предварительно собранные расширения, а не создавать их самостоятельно.

Некоторые из решений по установке scientific software, которые еще не доступны в виде предварительно собранных wheel файлов, также могут помочь в получении других бинарных расширений без необходимости их локальной сборки.