Skip to content

Home Администрирование Использование buildout
Использование buildout

Несмотря на то, что многие, кто имел дело с технологиями Zope, знали о существовании buildout, это оставалось тайной для остальной части пользователей Python. buildout - это рекомендуемый механизм развертывания Plone. Для тех, кто не знаком с Plone: это система управ-

ления содержимым для сайтов уровня предприятия, за которой стоит огромное сообщество разработчиков. Система Plone была чрезвычайно сложна в установке, пока не появился инструмент buildout. Теперь благодаря buildout установка Plone выполняется тривиально просто.

Многие даже не подозревают, что buildout можно использовать даже для управления окружением Python. buildout - это весьма интеллектуальное программное обеспечение, которому требуется всего две вещи:

• Последняя версия bootstrap.py. Загрузить ее всегда можно по адресу
http://svn.zope.org/* checkout*/zc.buildout /trunk/bootstrap /bootst
rap.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, можно увидеть, что пакет установлен, но неактивен. Мы не сможем запустить его, так как интерпретатор отсутствует:

Комментарии (0)

RSS feed Comments

Написать комментарий

smaller | bigger

busy
 

Регистрация




Top