2010-03-31 73 views
3

我想我的模块列表,被告知:的Python:模块列表(>>>帮助(“模块”)不工作)

>>> help('modules') 

会做的伎俩。但我只是得到

请稍等片刻,我收集所有可用模块的 列表...

在过去的前10分钟,我杀了它。

任何人都知道可能是什么原因造成的?或者我怎么能看到我的模块? (系统Ubuntu的9.10/Python的2.6.4)

感谢,

回答

1

安装IPython中

$ sudo apt-get install ipython 

然后运行IPython中,并键入import <tab>其中<标签>是tab键

如果您已经安装了Python-pygraphviz包,您可以使用

import pygraphviz 
+0

太棒了!你也可以使用这个来查看班级内的所有项目。谢谢! – Dan 2010-03-31 15:51:23

1

如果你想看到你有进口版(直接或间接)的模块,

>>> import sys 
>>> print sys.modules 

help('modules')是关于所有可用的模块 - 即如果您愿意,您**可以*导入的模块。它对我来说不会像它对你那样长久,但如果你已经安装了足够的扩展,它可能会有成千上万个“潜在”模块显示出来,所以这可能需要一点也不奇怪的时间收集这些信息。

+0

我主要试图找到一个列表,以便我可以看到我最近安装的graphviz模块的名称,它看不到我尝试过的任何名称。 – Dan 2010-03-31 05:45:33

3

help("modules")可能需要很长时间,因为它必须在我之前导入每个模块t可以搜索该模块的子模块路径。如果任何模块的代码不在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')