Вы уже знаете, что для установки, обновления и удаления пакетов часто применяются пакетные менеджеры. Один такой менеджер мы рассмотрим в этом уроке, но сначала немного поговорим о фундаменте системы пакетирования Python.
Пакеты distutils и Setuptools
В поставку Python входит пакет distutils. Он отвечает за создание дистрибутивов — архивов кода, которые могут быть распакованы в целевом окружении и установлены так, чтобы интерпретатор Python увидел распакованный код. При создании пакета программист заходит в корневую директорию будущего пакета и создает там файл setup.py
, в который импортирует из модуля distutils
функцию setup
и вызывает ее. Таким образом каждый пакет содержит в себе программу для управления собой.
Подробнее о том, как работает distutils, можно почитать в официальной документации к пакету, а мы сразу двинемся дальше.
Дело в том, что пакет distutils существует уже довольно давно и поэтому уже не очень удобен в использовании. Гораздо чаще используется надстройка над distutils — пакет Setuptools.
Собранные с помощью Setuptools пакеты уже умеют предоставлять метаданные: описание, версию, и собственные зависимости. Без Setuptools сложно обойтись, поэтому стоит научиться его использовать. Сделать это можно с помощью документации.
Дальше в рамках этого курса мы будем рассматривать более простой инструмент для создания пакетов и загрузки их в индекс — Poetry, с которым мы познакомимся попозже.
После того как пакет создан и загружен в индекс, его можно использовать — скачать, распаковать во временную директорию, оттуда запустить python3 setup.py install
и таким образом установить пакет. Но есть и способ попроще.
Программа pip
Каким бы способом пакет ни был создан и загружен в индекс, его нужно скачивать и устанавливать, причем со всеми зависимостями. Сейчас этим в основном занимается специальная программа pip — The Python Package Installer.
Обо всех возможностях pip вы сможете почитать в документации. Мы же рассмотрим только самую важную функцию pip — установку пакетов. В следующем уроке мы установим сам pip и с помощью него установим в окружение первый пакет.
Дополнительные материалы
- distutils - Building and installing Python modules
- Setuptools - Collection of enhancements to the Python distutils
- pip - The Python Package Installer
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.