我有以下文件夹结构:
bootstrap.py
setup.py
conf/
buildout.cfg
现在我如何制作它以便运行python bootstrap.py
将生成的文件夹bin,eggs,parts等放在根目录而不是conf文件夹下?
答案 0 :(得分:4)
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/
目录的父目录;例如你的bootstrap文件所在的目录。
但是,仍然引用${buildout:directory}
的任何配方仍将使用项目根目录的conf/
目录内容。您无法将该选项设置为相对路径,您必须让buildout为您设置它或指定完整路径:
[buildout]
directory = /full/path/to/directory
在我看来,你最好使用第一个选项,它使得运行引导脚本更容易,因为它默认在当前目录中查找buildout.cfg
文件。
答案 1 :(得分:1)
在根目录中创建一个buildout.cfg
,它会在conf目录中扩展您的buildout:
[buildout]
extends=conf/buildout.cfg
我通常只有几个buildout配置文件,例如:base
,developer
,deployment
目录下的buildout
,所以我自己使用这个方法来引导我需要的文件