如何指定buildout bootstrap生成文件夹的位置?

时间:2011-10-15 07:43:56

标签: python buildout

我有以下文件夹结构:

bootstrap.py
setup.py
conf/
    buildout.cfg

现在我如何制作它以便运行python bootstrap.py将生成的文件夹bin,eggs,parts等放在根目录而不是conf文件夹下?

2 个答案:

答案 0 :(得分:4)

buildout的基本目录始终是找到起始配置文件的目录,因此在您的情况下位于conf/

有两个解决方法,一个简单,一个更难。第一种方法是在根目录中放置一个裸buildout.cfg文件,并将其包含在conf/中的文件中:

[buildout]
extends = conf/buildout.cfg

或者,您可以在*-directory文件中为conf/buildout.cfgeggsdevelop-eggsparts中的每一个设置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配置文件,例如:basedeveloperdeployment目录下的buildout,所以我自己使用这个方法来引导我需要的文件