我想要一份我的模块清单,并被告知:
>>> help('modules')
会做的伎俩。但我得到了
请等我一会儿 所有可用模块的列表...
在我杀了之前超过10分钟。
任何人都知道是什么原因引起的?或者我怎么能看到我的模块? (系统Ubuntu 9.10 / Python 2.6.4)
谢谢,
丹
答案 0 :(得分:5)
help("modules")
可能需要很长时间,因为它必须先导入每个模块,然后才能搜索该模块的子模块路径。如果任何模块具有if __name__ == "__main__":
保护之外的代码,并且该代码需要用户输入或进入无限循环或由于任何其他原因而挂起,则这可能是一个问题。
在幕后,help("modules")
调用pkgutil.walk_packages
,其中展示了上述“导入一切”行为。作为替代方案,您可以调用iter_modules
,它不导入所有内容,但缺点是只迭代顶级模块。
>>> import pkgutil
>>> print [tup[1] for tup in pkgutil.iter_modules()]
['colorama', 'xlrd', 'BeautifulSoup', 'BeautifulSoupTests', '_ctypes', ...
#snip...
..., 'pywin', 'win32ui', 'win32uiole']
这也会错过一些内置模块,您可以使用sys
单独获取这些模块。
>>> import sys
>>> sys.builtin_module_names
('__builtin__', '__main__', '_ast', '_bisect', '_codecs', ...
#snip...
..., 'thread', 'time', 'xxsubtype', 'zipimport', 'zlib')
答案 1 :(得分:2)
如果您想看到导入 ed(直接或间接)的模块,
>>> import sys
>>> print sys.modules
help('modules')
是关于可用的所有模块 - 即您可以*导入的模块,如果您愿意的话。它对我来说不需要和你一样长,但是如果你已经安装了足够的扩展,它可以有数千或数万个“潜在”模块来显示,所以它可能需要一点点也就不足为奇了收集信息的时间。
答案 2 :(得分:1)
安装ipython
$ sudo apt-get install ipython
然后运行ipython并输入import <tab>
,其中&lt; tab&gt; 是标签键
如果您安装了python-pygraphviz包,则可以使用
import pygraphviz