Ответ 1
Сводка: Pip только устанавливает пакеты python, и вам, очевидно, нужно сделать больше. Вы можете сделать большую часть дополнительной работы в buildout с тем преимуществом, что buildout делает это для вас как локально, так и на сервере. Ткань должна делать меньше, таким образом. Недостатком является дополнительная сложность сборки, поэтому, если вам достаточно нескольких пользовательских команд ткани, это может быть предпочтительным для вас. Итак: как компромисс работает для вас?
Длинная версия:
Pip отлично подходит для установки пакетов python для вашего проекта. Buildout хорошо настраивает практически все для проекта (включая пакеты python). Это разница в целях.
Теперь... вы вставляете ткань в микс. С помощью pip + fabric вы можете вызвать pip изнутри ткани, чтобы захватить все пакеты python, а затем вы сами используете саму, чтобы настроить все остальное. Файл конфигурации apache/nginx, создание пары каталогов ( "var/log/" ) и т.д.
С buildout + fabric вы уже настроили buildout, чтобы сделать много вещей, таких как создание каталогов и создание файлов из шаблонов, а также настройка супервизора и настройка cronjob для запуска диспетчера при @reboot
. Таким образом, файл должен делать меньше.
Итак... вы меняете обязанности. Все, что вы можете сделать в buildout, вы можете сделать в ткани. Все, что вы можете сделать в buildout, вы можете делать с настраиваемыми скриптами python (или shell) в сочетании с pip ( "читать README для дополнительных команд, которые вам нужно сделать" ).
Buildout - хорошее место для того, чтобы делать что-то, если оно является неотъемлемой частью вашего проекта. Подумайте об этом так: если вам это нужно как на производстве на сервере, так и локально на вашей машине разработки, вам лучше сделать это в buildout. В противном случае вы также должны запускать ткань на своей локальной машине. Вы можете это сделать, но...
Я использую ткань в сочетании со сборкой, сам. Buildout предназначен для создания самого проекта, ткани для всего, что вокруг него. Некоторые примеры:
-
На самом деле клонирование сборки из git на рабочем сервере.
-
Git pull (и проверка правильного тега).
-
Перезапуск диспетчера.
Мое предложение: посмотрите на pypi для рецептов buildout, чтобы узнать, удобны ли они для вас. Сохраняют ли они вас достаточную работу, чтобы иметь смысл погрузиться в дополнительную сложность, что означает полная конфигурация сборки? Если вы не получите достаточного количества из buildout, вам может быть лучше с простой тканью + pip и множеством пользовательских команд в вашем файле ткани.