在 buildout.cfg 文件中可以通过添加 extends-buildout 指定一个 .cfg 文件来解决这个问题。
例如,假设我们有以下几个 eggs:
同时 myapp 依赖于 django。
原来的 buildout.cfg 可能长这样:
[buildout]
...
parts =
django
myapp
[django]
recipe = zc.recipe.egg
eggs =
django
[myapp]
recipe = zc.recipe.egg
eggs =
myapp
为了固定 django 的版本,我们可以添加 extends-buildout 指向一个新的 .cfg 文件 django.cfg:
[buildout]
...
extends =
django.cfg
buildout.cfg
parts =
myapp
[myapp]
recipe = zc.recipe.egg
eggs =
myapp
然后在 django.cfg 中指定间接依赖的 eggs:
[buildout]
...
parts =
django
[django]
recipe = zc.recipe.egg
eggs =
django == 2.2
这样就可以固定 django 的版本为 2.2,而 myapp 仍然可以用 latest 版本。