【问题标题】:buildout - mr.developer changes order of partsbuildout - mr.developer 更改零件顺序
【发布时间】:2013-03-09 07:55:40
【问题描述】:

我有一个调用两个配方的构建配置。这两个配方必须按定义的顺序执行。

最后执行的配方由 mr.developer 扩展从 git 存储库中获取。然而,当 mr.developer 拉入配方时,它会将其视为一个鸡蛋并首先执行它。这会打乱正确的顺序并且构建失败。

我尝试设置 egg=false 以使配方不会首先执行,但这会阻止配方完全执行,因为它不是鸡蛋。

想知道我的 buildout.cfg 是什么样子的:

[buildout]
develop = .
extensions = mr.developer
auto-checkout = custom-recipe
parts =
    part-one
    part-two

[sources]
custom-recipe = git http://location.of.repo

[part-one]
recipe = recipe.from.pypi
src = ${buildout:directory}

[part-two]
recipe = custom-recipe
src = ${part-one:src}

应该遵守buildout:parts 中各部分出现的顺序。如果一个部分引用另一个部分,则可以更改顺序以使依赖关系正确。我试图通过从 part-two 引用 part-one 来“欺骗”构建,这不起作用,因为 mr.developer 已经引用了 part-two

任何帮助将不胜感激。

【问题讨论】:

  • 零件订购完全基于依赖关系。 mr.developer 但是必须在零件订购之外采取行动,因为它需要先安装鸡蛋,然后再安装其他任何东西。它确实不会弄乱排序本身;第二部分将在第一部分之后运行,但第一部分可以跳过,因为它不需要更新。因此,我认为您的诊断在这里是错误的。

标签: python buildout


【解决方案1】:

经过一些测试,我发现了问题所在。配方包含三个部分:构造函数、安装函数和更新函数。在所有安装发生之前调用构造函数,这造成了混乱。

我在构造函数中有一些依赖于其他部分的东西。因为在所有安装发生之前调用了构造函数,所以代码失败了。将其移至安装功能后,一切顺利。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 2013-06-08
    • 2020-12-16
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多