2017-03-30 5 views
5

나는 루이지가 어떻게 작동하는지 아주 간단한 방법으로 배우려고합니다. 그냥 초보자로서 내가 명령 프롬프트에서이 실행이 코드루이지 - 실행시 % s 미완료되었습니다.

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() 

함께했다하면 class2에 대한 출력을 정의하지만를 작성하지 않기 때문에이 문제가 발생

raise RuntimeError('Unfulfilled %s at run time: %s' % (deps, ',  
+0

실행하기 위해 어떤 명령을 사용하고 있습니까? 당신의'run()'메소드는 의존성을 충족시키기 위해'LocalTarget'에서 참조 된 출력 파일을 생성 할 필요가 있습니다. – MattMcKnight

답변

6

말하는 오류를 제공합니다.

의 그것을 무너 뜨리는하자

...

python file.py class2 --local-scheduler 

루이지가 묻습니다 실행하는 경우 :

  • 디스크에 이미 class2의 출력입니까? class2의 NO
  • 체크 종속성 : NONE
  • 오류를 반환하지 않은 run (그것의 기본적으로 비어있는 방법 pass) 방법
  • 실행 방법을 실행하지 않기 때문에 작업이 성공적으로 완료. 그러나

,

python file.py class1 --local-scheduler 

루이지을 실행하는 것입니다 :

  • 디스크에 이미 class1의 출력은? NO
  • 확인 작업 종속성 : YES : class2
  • 일시 중지
    • 디스크에 class2의 출력에 Class2의 상태를 확인할 수 없습니다? NO
    • 실행 class2 -> 실행 -> 오류없이 수행
    • 디스크에 class2의 출력은? NO -> 이전의 모든 종속성이 충족되지 않는 오류

루이지가 작업을 실행하지 올립니다. (즉, 출력이 파일 시스템에 있음)