Interested Article - Buildout
- 2021-07-17
- 2
Buildout — средство автоматизации сборки для программного обеспечения с открытым исходным кодом , написанное на Python . Позволяет создавать, собирать и вводить в действие приложения из нескольких частей. Buildout помогает конфигурировать и в точности воспроизводить сборку программного обеспечения заданной конфигурации .
Buildout используют такие проекты как Django , Zope , Plone , , Pylons и др.
Термин «buildout» применяется также в отношении каталога, в котором развёрнута конфигурация некоторого приложения и содержится файл
buildout.cfg
, а сам
скрипт
buildout обычно находится в
bin/buildout
.
Возможности
Основные возможности Buildout следующие:
- Создаёт изолированную среду исполнения приложений на Python (наподобие ).
- Применяет язык описания зависимостей, похожий по синтаксису на язык INI -файлов. Файлы конфигурации описывают egg -файлы (формат пакетов программного обеспечения на Python, вроде RPM ), необходимые для сборки, и другие части ( англ. part ), например, библиотеки на других языках программирования, требующие компиляции.
- Использует рецепты ( англ. recipe ) для расширения функциональных возможностей сборки, выполняя их по очереди .
- Позволяет разрабатывать и вводить программное обеспечение в эксплуатацию, выпускать исходные коды приложения вместе с конфигурацией среды исполнения .
Конфигурация
Структура файла конфигурации может быть схематически представлена следующим образом :
[buildout]
parts =
part1
part2
develop =
src/my.package1
src/my.package2
find-links =<nowiki>
http://dist.plone.org/thirdparty</nowiki>
[part1]
recipe = recipe.name1
# ... другие данные
[part2]
recipe = recipe.name2
# ... другие данные
Встретив такой файл конфигурации, buildout будет по очереди рассматривать части, находить указанные в них рецепты, загружая по необходимости указанные в них пакеты с рецептами, запускать рецепты в соответствии с их
точками входа
(конфигурируются в
setup.py
пакета). Поиск ссылок на пакеты может быть расширен за счёт добавления списка
URL
в
find-links
. Опция
develop
даёт пути к пакетам, которые должны быть добавлены к набору библиотек в виде egg-файлов. Обычно это пакеты, находящиеся в разработке
.
Опция
extends
указывает на другой файл конфигурации, который берётся за основу. Тем самым можно разбить конфигурационные файлы buildout на несколько частей. При этом опции можно изменять, присваивая (=), добавляя (+=) или убирая некоторые значения
:
[buildout]
extends = mybase.cfg
[part-one]
key0 = rec0
key1 +=
rec1
rec2
key2 -= rec3
Файл
mybase.cfg
для этого примера может выглядеть так:
[part-one]
key0 = rec0 rec00
key1 = rec0
key2 = rec1 rec2 rec3
Результат:
[part-one]
key0 = rec0
key1 = rec0 rec1 rec2
key2 = rec1 rec2
Имеются и другие возможности, например, подстановка опций из других частей, клонирование части.
Пример
Пример простого файла конфигурации
buildout.cfg
для Plone
:
[buildout]
parts = instance
extends = <nowiki>http://dist.plone.org/release/4.1/versions.cfg</nowiki>
[instance]
recipe = plone.recipe.zope2instance
eggs =
Plone
Pillow
Некоторые параметры командной строки
Режимы работы для скрипта buildout могут быть заданы параметрами командной строки :
-v
|
Увеличить детализацию сообщений. Может быть использован несколько раз. |
-q
|
Уменьшить детализацию сообщений. Может быть использован несколько раз. |
-U
|
Не читать файл настроек buildout конкретного пользователя. |
-o
|
Режим офлайн . Запрещает устанавливать соединения с другими хостами для доступа к частям, пакетам и т. п. |
-O
|
Режим онлайн (действует по умолчанию). |
-n
|
Проверять доступность свежих версий пакетов (действует по умолчанию). |
-N
|
Не проверять обновления пакетов. |
-c
|
Альтернативный файл конфигурации (по умолчанию: buildout.cfg) |
Из командной строки также можно задавать команды (например, buildout install) и значения ключей в формате
часть:опция=значение
.
Примечания
- . Дата обращения: 10 декабря 2015. 21 апреля 2016 года.
- ↑ . Дата обращения: 2 августа 2012. 29 июля 2012 года.
- Jacob Kaplan-Moss. (2009). Архивировано из 29 июля 2012 года.
- 5 мая 2009 года.
- , pp. 167-168.
- ↑ , pp. 169.
- ↑ . Дата обращения: 2 августа 2012. Архивировано из 18 октября 2012 года.
Ссылки
Литература
- Tarek Ziadé. Expert Python Programming. — Packt Publishing Ltd., 2008. — 372 с. — ISBN 978-1-847194-94-7 . , pp. 168–177
- Martin Aspeli. Professional Plone 4 Development. — Packt Publishing Ltd., 2011. — 516 с. — ISBN 9781849514422 . , pp. 38–44
- Alex Clark. Plone 3.3 Site Administration. — Packt Publishing Ltd., 2010. — 240 с. — ISBN 9781847197047 .
- 2021-07-17
- 2