2008-10-24 2 views
7

공유 파이썬 모듈이 여러 개인 파이썬 프로그램 모음에 의해 생성되는 C 파일이 여러 개 있는데이 파일을 제 확인 시스템에서 고려해야합니다.파이썬 코드에 대한 메이크 파일 의존성 수행 방법

각 C 파일을 생성하기 위해 어떤 Python 프로그램을 실행해야 하는지를 열거하기 란 쉽습니다. 내가 좋은 해결책을 찾을 수없는 것은 그 프로그램이 의존하는 다른 파이썬 파일을 결정하는 것이다. 공유 된 파이썬 파일 중 하나가 변경되면 재생성이 필요한지 알 수 있도록 make가 필요합니다.

파이썬 소스 모음에서 스타일 종속성 규칙을 만드는 데 적합한 시스템이 있습니까?

답변

3

modulefinder이를 참조하십시오.

+0

일부 모듈 (예 : PIL)은 동적 가져 오기로 펑키 한 일을 처리하므로 모듈 파인더는 모든 것을 찾으려면 도움이 필요한 경우가 있습니다. –

1

import 문장은 거의 모든 종속성이 있습니다.

import x, y, z 
from x import a, b, c 

또한 sys.path을 구축하는 데 사용되는 PYTHONPATHsites 정보가 필요합니다 : 가져 오기 문에 대한 두 개의 관련된 형태가되어 있습니다. 모듈과 패키지의 물리적 위치를 보여줍니다.

가져 오는 모든 모듈에서 모든 가져 오기를 일시적으로 닫아야하므로 처리하기가 어렵습니다.

대체 방법으로 -v 옵션을 사용하여 가져 오기 및 실제 파일의 전체 목록을 가져올 수 있습니다. 이렇게하면 종속성의 단순 목록으로 편집 할 수있는 로그가 생성됩니다. 예를 들어

, 내가

>>> import math 

을 나는 get the dependency graph에 사용할 수있는 로그

dlopen("/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/math.so", 2); 
import math # dynamically loaded from /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/math.so