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