Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为虚假目标定制构建决策逻辑,这并不';不涉及文件_Python_Scons - Fatal编程技术网

Python 如何为虚假目标定制构建决策逻辑,这并不';不涉及文件

Python 如何为虚假目标定制构建决策逻辑,这并不';不涉及文件,python,scons,Python,Scons,我有一个目标,它需要一些时间昂贵的行动,并依赖于类似的时间昂贵的目标。它也是一个虚假的目标,因此它不依赖于源文件,也不生成文件。我想让SCON根据一些抽象值来决定何时构建这个目标 对我来说,最好使用SCON的功能,如: Value(值,[build\u Value])、env.Value(值,[build\u Value]) 。。。值节点可以用作目标的依赖项。如果调用str(value)的结果在SCON运行之间发生变化,则将重建依赖于value(value)的任何目标 所以我构建了这个SCons

我有一个目标,它需要一些时间昂贵的行动,并依赖于类似的时间昂贵的目标。它也是一个虚假的目标,因此它不依赖于源文件,也不生成文件。我想让SCON根据一些抽象值来决定何时构建这个目标

对我来说,最好使用SCON的功能,如:

Value(值,[build\u Value])、env.Value(值,[build\u Value])

。。。值节点可以用作目标的依赖项。如果调用str(value)的结果在SCON运行之间发生变化,则将重建依赖于value(value)的任何目标

所以我构建了这个SConstruct来测试它:

import random as rnd


env = Environment()


def action(**_):
    print('Do crazy things')

input = env.Value('a')

env['BUILDERS']['Custom'] = Builder(action=action)
env.Custom(target='target', source=input)
env.Pseudo('target')
我希望SCON在第一次构建之后停止重建目标,因为在构建之间输入值的值保持不变。但斯科斯每次都会重建它


有什么方法可以实现我所说的吗?

您也可以在这里的SCons用户邮件列表中看到相关的回复,因为作者也在那里发布了一个问题:它消耗了什么,产生了什么?一个具体的答案将有助于提供一个合理的解决方案。你也可以在这里的SCons用户邮件列表中看到相关的回复,因为作者也在那里发布了一个问题:它消耗了什么,产生了什么?具体的答案将有助于提供合理的解决办法。