我想以一种非常简单的方式学习如何使用luigi.就像一个新手一样,我提出了这个代码
import luigi
class class1(luigi.Task):
def requires(self):
return class2()
def output(self):
return luigi.LocalTarget('class1.txt')
def run(self):
print 'IN class A'
class class2(luigi.Task):
def requires(self):
return []
def output(self):
return luigi.LocalTarget('class2.txt')
if __name__ == '__main__':
luigi.run()
Run Code Online (Sandbox Code Playgroud)
在命令提示符下运行此命令会出错
raise RuntimeError('Unfulfilled %s at run time: %s' % (deps, ',
Run Code Online (Sandbox Code Playgroud)
mja*_*jel 11
发生这种情况是因为您定义了输出class2但从未创建它.
让我们分解一下......
跑步时
python file.py class2 --local-scheduler
Run Code Online (Sandbox Code Playgroud)
路易吉会问:
class2已经在磁盘上的输出?没有class2:NONErun方法(默认情况下是空方法pass)但是,在跑步时
python file.py class1 --local-scheduler
Run Code Online (Sandbox Code Playgroud)
路易吉将:
class1已经在磁盘上的输出?没有class2class2磁盘的输出?没有class2- > 运行 - >完成没有错误class2磁盘的输出?不 - >提出错误除非满足以前的所有依赖关系,否则luigi永远不会运行任务.(即他们的输出是在文件系统上)