Python:完整的模块列表

Dav*_*ter 9 python module

如何获得所有可用的python模块列表?

我不想要模块的模块.只是可用的所有模块的基本列表sys.path.

help('modules') 不是解决方案,因为我希望它可用作变量,并导入那些具有副作用的模块.

编辑:有副作用我的意思是http://kivy.org/的 kivy这样的库,它利用了这个事实,一旦导入它就会执行代码.

Cor*_*erg 8

pkgutil - 支持包的实用程序

这将为sys.path上的所有子模块生成一个元组:

pkgutil.iter_modules()
Run Code Online (Sandbox Code Playgroud)

看看装了什么,看看:

sys.modules
Run Code Online (Sandbox Code Playgroud)

"这是一个将模块名称映射到已经加载的模块的字典"

已加载模块的列表:

sys.modules.keys() 
Run Code Online (Sandbox Code Playgroud)


jsb*_*eno 5

使用随Python安装一起提供的外部脚本"pydoc":从命令shell中键入:

$ pydoc modules
Run Code Online (Sandbox Code Playgroud)

Pydoc也可以在Python中使用,其中一种方法是让它遍历所有可用的方法:

all_mod = []
pydoc.ModuleScanner().run(callback=(lambda *a: all_mod.append(a[1])), onerror=lambda *a:None)
print all_mod
Run Code Online (Sandbox Code Playgroud)