我试图以一种非常简单的方式学习如何使用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()
在命令提示符下运行此错误说明
raise RuntimeError('Unfulfilled %s at run time: %s' % (deps, ',
答案 0 :(得分:10)
这是因为您为class2
定义了输出但从未创建它。
让我们分解......
运行时
python file.py class2 --local-scheduler
路易吉会问:
class2
? NO class2
:NONE run
方法(默认为' s和空方法pass
)但是,在运行时
python file.py class1 --local-scheduler
路易吉将:
class1
? NO class2
class2
的输出? NO class2
- > 正在运行 - >完成没有错误class2
的输出?不 - >提出错误答案 1 :(得分:0)
我也是luigi的初学者。感谢您指出这种错误。
下面,我设法解决了上一个问题,将其添加到class2
def run(self):
_out = self.output().open('w')
_out.write(u"Hello World!\n")
_out.close()
print('in class B')
答案 2 :(得分:0)
出现此错误是因为如果您获得永远不会创建的输出。 前任。如果输出文件夹按时间戳创建。 时间戳每秒都在变化,因此它永远不会相同。 所以可能会出现错误。