2010-01-04 7 views

답변

35

sys.modules은 모듈 이름을 모듈에 매핑하는 사전입니다. 가져온 모듈을 보려면 키를 검사 할 수 있습니다.

+2

아주 쉬웠습니다! –

+2

참조를 잊어 버렸습니다. http://docs.python.org/library/sys.html#sys.modules –

+1

이유에 대한 자세한 내용은 확실하지 않지만 여기에는 실제로 ** ALL ** 사용 가능한 패키지가 포함되어 있지 않습니다. 나는 파이썬이리스트에 없었던'다중 처리 (multiprocessing) '를 어디에서 가져 오는지를 밝혀 내려고했다. 'python -v'를 사용하여 verbose 플래그가 작동합니다. –

31

당신은 에 대한 모든 수입 된 모듈을 메시지를 방출 할, python -v을 사용할 수 등

$ echo 'print "hello world"' > helo.py 
$ python -v helo.py 
# installing zipimport hook 
import zipimport # builtin 
# installed zipimport hook 
# /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site.pyc matches /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site.py 
import site # precompiled from /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site.pyc 
# /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.pyc matches /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.py 
import os # precompiled from /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.pyc 
import posix # builtin 
# /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/posixpath.pyc matches /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/posixpath.py 
import posixpath # precompiled from /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/posixpath.pyc 

... 등등하고 있습니다. 물론 grep이 큰 목록 중에서 관심있는 모듈을 나중에 수 있습니다! -)

+4

이것은 받아 들여진 대답 일 것입니다. – Escualo

+0

리눅스에서는 python -v helo.py 2> stuff.txt를 사용하여 grep을 허용해야합니다. -v는 stderr에 출력하는 것처럼 보입니다. – Martlark

1

나는 modulefinder이 당신이 찾고있는 것입니다. modulefinder.py을 직접 스크립트로 실행하거나 import the module and then create a reportmodulefinder.ModuleFinder 클래스를 사용하여 스크립트로 실행할 수 있습니다.

+0

@Alex Martelli의 답변에서 제공하는 정보는 많지 않습니다. – user183037

0

패키지 또는 폴더에서 모든 .pyc 파일을 삭제 한 다음 응용 프로그램을 실행하는 것이 가장 간단한 방법입니다. 일단 당신이 조금 해본 적이 있다면, 디렉토리 목록을 만들고 어떤 파일에 .pyc 파일이 있는지 확인하십시오. 이들은 응용 프로그램에서 가져온 모듈입니다.

(참고 :모듈 중 "기본"스크립트로 호출되는 모듈은 컴파일되지 않습니다. 따라서 응용 프로그램 내에서 가져온 것이 없으면 .pyc 파일을 볼 수 없습니다.) 종종 문제가 발생하면 문제의 징후가 나타납니다.)