#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. Спасибо 🙂 Я всегда забываю об этом.