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

Email:distutils-sig@python.org

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

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

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

Примечание

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

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

  • pip является предпочтительной программой установки. Начиная с версии Python 3.4, он по умолчанию входит в состав Python бинарных установщиков.
  • виртуальная среда - это полуавтономная среда Python, которая позволяет устанавливать пакеты для использования определенным приложением, а не для установки в масштабах всей системы.
  • venv является стандартным инструментом для создания виртуальных сред и является частью Python начиная с Python 3.3. Начиная с версии Python 3.4, по умолчанию устанавливается pip во все созданные виртуальные среды.
  • virtualenv является сторонней альтернативой (и предшественником) venv. Он позволяет используемый виртуальные среды на версиях Python до 3.4, которые либо вообще не предоставляют venv, либо не могут автоматически устанавливать pip в созданные среды.
  • Пакетный индекс Python является публичным хранилищем лицензионных пакетов с открытым исходным кодом, доступных для использования другими пользователями Python.
  • Комитет по пакетам в Python является группой разработчиков и авторов документации, ответственных за обслуживание и развитие стандартных средств пакетизации и связанных с ними стандартов метаданных и форматов файлов. Они поддерживают различные инструменты, документацию и трекеры проблем как на GitHub, так и на Bitbucket.
  • distutils - это исходная система сборки и распространения, впервые добавленная в стандартную библиотеку Python в 1998 году. В то время как прямое использование distutils постепенно прекращается, оно по-прежнему закладывает основу для нынешней инфраструктуры пакетизации и распространения, и оно не только остается частью стандартной библиотеки, но и его название живет по- другому (например, название списка рассылки используемый для координации Python разработки стандартов пакетизации).

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

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

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

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

python -m pip install SomePackage

Примечание

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

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

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

python -m pip install SomePackage==1.0.4    # конкретная версия
python -m pip install "SomePackage>=1.0.4"  # минимальная версия

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

python -m pip install --upgrade SomePackage

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

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

Как я это делаю?

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

… установить pip в версиях Python до Python 3.4?

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

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

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

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

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

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

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

python2   -m pip install SomePackage  # по умолчанию Python 2
python2.7 -m pip install SomePackage  # конкретно Python 2.7
python3   -m pip install SomePackage  # по умолчанию Python 3
python3.4 -m pip install SomePackage  # конкретно Python 3.4

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

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

py -2   -m pip install SomePackage  # по умолчанию Python 2
py -2.7 -m pip install SomePackage  # конкретно Python 2.7
py -3   -m pip install SomePackage  # по умолчанию Python 3
py -3.4 -m pip install SomePackage  # конкретно Python 3.4

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

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

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

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

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

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

python -m ensurepip --default-pip

Имеются также дополнительные ресурсы для установки pip.

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

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

С введением поддержки двоичного формата wheel, и возможностью публикации wheels по крайней мере для Windows и Mac OS X через Пакетный Индекс Python (PIP), эта проблема, как ожидается, со временем уменьшится, так как пользователи более регулярно могут устанавливать предварительно построенные расширения, а не должны строить их сами.

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