Как указать, где размещать папки, сгенерированные при начальной загрузке buildout?

#python #buildout

#python #buildout

Вопрос:

У меня следующая структура папок:

 bootstrap.py
setup.py
conf/
    buildout.cfg
  

Теперь, как мне сделать так, чтобы запуск python bootstrap.py помещал сгенерированные папки bin, eggs, parts и т. Д. В корень, а не в папку conf?

Ответ №1:

Базовый каталог для buildout всегда является каталогом, в котором находится начальный файл конфигурации, так что в вашем случае это так conf/ .

Для этого есть два обходных пути, один простой, другой сложнее. Первый — просто поместить пустой buildout.cfg файл в корень и включить его в conf/ :

 [buildout]
extends = conf/buildout.cfg
  

Кроме того, вы можете задать *-directory параметры в своем conf/buildout.cfg файле для каждого из eggs каталогов , develop-eggs , parts и bin :

 [buildout]
bin-directory = ../bin
parts-directory = ../parts
eggs-directory = ../eggs
develop-eggs-directory = ../develop-eggs
  

Это установит для этих каталогов родительский каталог вашего conf/ каталога; например, тот же каталог, в котором находится ваш файл начальной загрузки.

Однако любой рецепт, который по-прежнему ссылается на ${buildout:directory} , все равно будет использовать conf/ каталог insead корневого каталога вашего проекта. Вы не можете установить для этого параметра относительный путь, вы должны либо разрешить buildout установить его для вас, либо указать полный путь:

 [buildout]
directory = /full/path/to/directory
  

На мой взгляд, вам лучше всего использовать первый вариант, он в любом случае упрощает запуск скрипта начальной загрузки, поскольку он по умолчанию ищет buildout.cfg файл в текущем каталоге.

Ответ №2:

Создайте buildout.cfg в своем корне, который расширяет ваш buildout в каталоге conf:

 [buildout]
extends=conf/buildout.cfg
  

Обычно у меня есть несколько файлов конфигурации сборки, например: base , developer , deployment в каталоге buildout , поэтому я сам использую этот метод для начальной загрузки нужного мне файла.

Комментарии:

1. Вы не можете использовать кавычки; теперь они являются частью имени файла, и в нем нет "conf каталога с buildout.cfg" файлом. 😛

2. Спасибо 🙂 Я всегда забываю об этом.