Библиотека сайта 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. Выученные уроки
