Библиотека сайта rus-linux.net
Архитектура системы управления пакетами в Python
Глава 14 из 1 тома книги "Архитектура приложений с открытым исходным кодом".
Оригинал: Python Packaging
Автор: Tarek Ziade
Дата публикации: 7 Июня 2012 г.
Перевод: А.Панин
Дата публикации перевода: 3 апреля 2013 г.
Creative Commons. Перевод был сделан в соответствие с лицензией Creative Commons. С русским вариантом лицензии можно ознакомиться здесь.
14.5. Подробности реализации
Distutils2
. Файл setup.py
больше не используется, а проект полностью описывается с помощью файла setup.cfg
, являющегося статическим .ini
-подобным файлом. Таким образом мы упростили работу лиц, осуществляющих упаковку проектов, позволив изменять ход установки проекта без вмешательства в код на языке Python. Ниже приведен пример такого файла:
[metadata] name = MPTools version = 0.1 author = Tarek Ziade author-email = tarek@mozilla.com summary = Set of tools to build Mozilla Services apps description-file = README home-page = http://bitbucket.org/tarek/pypi2rpm project-url: Repository, http://hg.mozilla.org/services/server-devtools classifier = Development Status :: 3 - Alpha License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)
[files] packages = mopytools mopytools.tests extra_files = setup.py README build.py _build.py resources = etc/mopytools.cfg {confdir}/mopytools
Distutils2
использует файл конфигурации для:
- генерации файлов метаданных
META-1.2
, которые могут использоваться в различных целях, таких, как регистрация проекта в каталоге PyPI. - выполнения любой команды управления пакетами, такой, как
sdist
. - установки проекта на основе
Distutils2
.
В рамках проекта Distutils2
также реализован механизм схем версий VERSION
с помощью модуля version
.
Реализация механизма создания списка установленных файлов INSTALL-DB
будет добавлена в стандартную библиотеку Python версии 3.3 в рамках модуля pkgutil
. В промежуток времени до добавления в стандартную библиотеку версия этого модуля существует в проекте Distutils2
и доступна для непосредственного использования. Предоставляемые API позволяют просматривать установки проектов и получать списки установленных файлов.
Distutils2
:
- системы установки/удаления пакетов
- просмотра графов зависимостей для установленных проектов
Далее: 14.6. Выученные уроки