| Использование buildout |
|
Несмотря на то, что многие, кто имел дело с технологиями Zope, знали о существовании buildout, это оставалось тайной для остальной части пользователей Python. buildout - это рекомендуемый механизм развертывания Plone. Для тех, кто не знаком с Plone: это система управ- ления содержимым для сайтов уровня предприятия, за которой стоит огромное сообщество разработчиков. Система Plone была чрезвычайно сложна в установке, пока не появился инструмент buildout. Теперь благодаря buildout установка Plone выполняется тривиально просто. Многие даже не подозревают, что buildout можно использовать даже для управления окружением Python. buildout - это весьма интеллектуальное программное обеспечение, которому требуется всего две вещи: •
Последняя версия bootstrap.py. Загрузить ее всегда можно по адресу • Файл buildout.cfg с именами пакетов для установки. Лучший способ продемонстрировать возможности buildout состоит в том, чтобы установить что-нибудь с его помощью. Hoa (Noah) написал инструмент командной строки для удаления дубликатов файлов, который можно найти в центральном репозитарии Python, PyPI. Мы попробуем с помощью buildout развернуть среду Python для запуска этого инструмента. Шаг 1: загруить сценарий buildout.py:
Шаг 2: написать простой файл buildout.cfg. Как уже говорилось выше, buildout требует для своей работы файл buildout.cfg. Если попытаться запустить сценарий buildout. py без файла buildout.cfg, будет получено следующее сообщение:
Для примера создадим конфигурационный файл, как показано в примере 9.3. Пример 9.3. Пример конфигурационного файла buildout
Если сохранить этот файл с именем buildout.cfg и затем снова запустить сценарий buildout.py, будет получен вывод, как показано в примере 9.4.
Пример 9.4. Создание окружения buildout Если заглянуть в эти вновь созданные каталоги, мы найдем выполняемые программы, включая отдельный интерпретатор Python в каталоге bin:
Теперь, когда была выполнена установка инструмента buildout, можно запустить его и пакет, который мы определили ранее, будет работать, как показано в примере 9.5. Пример 9.5. Запуск buildout и тестирование установки
Наконец, т. к. сценарий «liten» был создан с использованием точки входа, то при установке пакета формата egg помимо модуля автоматически был установлен консольный сценарий в локальный каталог bin в окружении buildout. Если попробовать запустить этот сценарий, будет получен вывод, как показано ниже:
Это очень простой и яркий пример, демонстрирующий, как можно использовать buildout для создания изолированной среды и автоматически развертывать все необходимые зависимости проекта и самой среды. Тем не менее, чтобы продемонстрировать истинную мощь ьuild-out, нам необходимо рассмотреть еще один аспект этого инструмента. buildout обладает полным «контролем» над каталогом, в котором он вbinолняется, и при каждом запуске он читает файл bu.ildout.cfg в поисках инструкций. Это означает, что если удалить пакет egg из списка, это приведет к удалению инструмента командной строки и библиотеки, как показано в примере 9.6. Пример 9.6. Удаление записей из конфигурационного файла buildout
Ниже приводится результат повторного запуска buildout после удаления пакетов и интерпретатора из списка. Обратите внимание, что у buildout имеется множество параметров командной строки и в данном случае мы указали ключ -N, который всего лишь модифицирует измененные файлы. Обычно, на каждом перезапуске buildout перестраивает полностью свою среду.
Если теперь заглянуть в каталог bin, можно будет убедиться, что интерпретатор и инструмент командной строки исчезли. Единственное, что осталось в нем, это сам инструмент командной строки buildout:
Однако, если заглянуть в каталог eggs, можно увидеть, что пакет установлен, но неактивен. Мы не сможем запустить его, так как интерпретатор отсутствует:
Related Articles
Set as favorite
Bookmark
Email This
Hits: 339 Комментарии (0)RSS feed CommentsНаписать комментарий |