查找正在导入的python模块

Joh*_*ang 41 python package

从应用程序中使用的特定包中查找所有python模块的简单方法是什么?

Ned*_*der 37

sys.modules是一个字典映射模块名称到模块.您可以检查其键以查看导入的模块.

  • 那很容易! (2认同)
  • 您忘记了参考:http://docs.python.org/library/sys.html#sys.modules (2认同)
  • @ stvn66它不是一个可用包列表.它是所有实际导入的模块.它是确保在导入模块两次时获得相同模块对象并避免两次执行代码的结构. (2认同)

Ale*_*lli 34

您可以使用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
Run Code Online (Sandbox Code Playgroud)

...等等等等.当然,您可以稍后grep从这个大型列表中感兴趣的模块! - )

  • 这应该是公认的答案. (4认同)