这似乎不起作用:
[buildout]
extends = buildout.cfg
eggs -= python-ldap
eggs += psycopg2
这种行为似乎总是好像这eggs += psycopg2
条线不存在。两条线的顺序无关紧要。
这是一个错误吗?有没有办法达到这个结果?
不幸的是,zc.buildout
直到版本 1.5.2 不支持这个用例。加法或减法都会成功。
内部发生的事情是这样的:
+=
,则取继承的值,添加内容并将其存储为新值。-=
,则取继承的值,删除一些东西,并将其存储为新值。在这些更新之后,继承的部分被复制,用新值更新,这被用作最终结果。
排序由通常的 python 映射语义定义,因此未定义;加法或减法最后运行。因为这两个操作都从继承的部分中获取输入,对其进行修改,然后将其存储为新值,所以最后运行的操作会覆盖之前运行的操作的结果。
我已经对此进行了修复;不过,我无权发布新版本的buildout
pypi,我将不得不戳那些这样做的人。
编辑:zc.buildout
1.6 版包含此修复程序。