2009-03-05 5 views
0

compile_dir을 사용하여 python 파일의 디렉토리를 컴파일 할 때 오류를 어떻게 발견합니까?compileall.compile_dir에서 오류를 감지하는 방법은 무엇입니까?

현재 stderr에 뭔가가 있지만 내 앱에서이를 감지 할 방법이 없습니다. py_compile.compile()은 'doraise'인수를 사용하지만 여기서는 아무 것도 사용하지 않습니다.

파이썬 스크립트에서이 작업을 수행하는 더 좋은 방법이 있습니까?

편집 :

나는 각 파일에 대한 os.walk 및 호출 py_compile.compile로 고정. 그러나 문제는 여전히 남아 있습니다.

답변

2

더 좋은 방법은 없습니다. 이 코드는 명령 행 프로그램을 지원하도록 설계되었으며 API는 라이브러리로 완전히 사용되지 않는 것으로 보입니다.

정말로 compileall을 사용해야한다면이 해킹으로 위조 해 버릴 수 있습니다. 발견 된 예외 처리기에서 "조용함"이 부울 여부를 테스트합니다.

import sys 
import py_compile 
import compileall 

class ReportProblem: 
    def __nonzero__(self): 
     type, value, traceback = sys.exc_info() 
     if type is not None and issubclass(type, py_compile.PyCompileError): 
      print "Problem with", repr(value) 
      raise type, value, traceback 
     return 1 
report_problem = ReportProblem() 

compileall.compile_dir(".", quiet=report_problem) 

Förresten, DET 핀란드 GothPy 아빠 första의 måndagen : 나는 (자동이 다른 상황에서 테스트) py_compile에서 온 경우 제로가 아닌으로 볼 수있는 예외 상태를 확인하고 해당 정보로 뭔가를 할 것을 대체 할 수 있습니다 다른 언어로는 Python-användare i Gbg를 사용하고 있습니다.

+0

감사합니다. 내 질문을 그냥 지우려고하는데, 잘못된 방향으로 돌아가려고 노력하고 있기 때문이다. 나는 내 작은 for 반복문에 상당히 만족한다. 그리고 GothPy는 좋은 것처럼 들립니다. 너희들 어디서 만난거야? – Macke

0

은 저에게 잘 맞습니다. 어떻게 든 doraiseTrue으로 설정하지 않았습니까?

관련 문제