Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Архитектура системы управления пакетами в Python

Глава 14 из 1 тома книги "Архитектура приложений с открытым исходным кодом".

Оригинал: Python Packaging
Автор: Tarek Ziade
Дата публикации: 7 Июня 2012 г.
Перевод: А.Панин
Дата публикации перевода: 3 апреля 2013 г.

Creative Commons. Перевод был сделан в соответствие с лицензией Creative Commons. С русским вариантом лицензии можно ознакомиться здесь.


14.3 Современная архитектура системы управления пакетами

14.3.4. Архитектура системы установки Python

Если вы устанавливаете проект на языке Python с помощью команды python setup.py install, пакет Distutils, включенный в стандартную библиотеку, скопирует файлы в вашу систему.
  • Модули и пакеты Python будут размещены в директории Python, используемой при запуске интерпретатора: в последней версии Ubuntu в директории /usr/local/lib/python2.6/dist-packages/ и в Fedora в директории /usr/local/lib/python2.6/sites-packages/.
  • Файлы данных проекта могут быть размещены в любой системной директории.
  • Исполняемый сценарий будет размещен в системной директории bin. В зависимости от платформы может использоваться директория /usr/local/bin или другая директория, заданная при установке Python.

С версии Python 2.5 файлы метаданных копируются вместе с модулями и пакетами в файлы с именами проект-версия.egg-info. Например, для проекта virtualenv будет использоваться имя файла virtualenv-1.4.9.egg-info. Эти файлы могут использоваться в качестве базы данных установленных проектов, так как в ходе их обхода становится возможным составление списка проектов вместе с их версиями. Однако, установщик из пакета Distutils не сохраняет список файлов, установленных в систему. Другими словами, нет способа удаления всех файлов, скопированных в систему. Это досадно, так как команда install поддерживает параметр --record, который может использоваться для записи списка установленных файлов в текстовый файл. Как бы то ни было, этот параметр не используется по умолчанию и в документации пакета Distutils содержится лишь краткое упоминание о нем.


Далее: 14.3.5. Setuptools, Pip и аналогичные проекты