2

这似乎不起作用:

[buildout]
extends = buildout.cfg
eggs -= python-ldap
eggs += psycopg2

这种行为似乎总是好像这eggs += psycopg2条线不存在。两条线的顺序无关紧要。

这是一个错误吗?有没有办法达到这个结果?

4

1 回答 1

5

不幸的是,zc.buildout直到版本 1.5.2 不支持这个用例。加法减法都会成功。

内部发生的事情是这样的:

  • 对于继承部分中定义的每个键、值对:
    • 如果键是 using +=,则取继承的值,添加内容并将其存储为新值。
    • 如果键是 using -=,则取继承的值,删除一些东西,并将其存储为新值。

在这些更新之后,继承的部分被复制,用新值更新,这被用作最终结果。

排序由通常的 python 映射语义定义,因此未定义;加法或减法最后运行。因为这两个操作都从继承的部分中获取输入,对其进行修改,然后将其存储为新值,所以最后运行的操作会覆盖之前运行的操作的结果。

我已经对此进行了修复;不过,我无权发布新版本的buildoutpypi,我将不得不戳那些这样做的人。

编辑zc.buildout1.6 版包含此修复程序。

于 2012-07-12T07:45:01.377 回答