Python:模块列表(>>>帮助(“模块”)不起作用)

Dan*_*Dan 4 python ubuntu module

我想要我的模块列表,并被告知:

>>> help('modules')
Run Code Online (Sandbox Code Playgroud)

会做到的。但是我得到

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

在我杀死它之前十多分钟。

有人知道是什么原因造成的吗?或我如何才能看到我的模块?(系统Ubuntu 9.10 / Python 2.6.4)

谢谢,

Kev*_*vin 5

help("modules")这可能会花费很长时间,因为它必须先导入每个模块,然后才能在该模块的路径中搜索子模块。如果任何模块的代码超出if __name__ == "__main__":保护范围,并且该代码需要用户输入或进入无限循环或由于任何其他原因而挂起,则可能会出现问题。

在幕后,help("modules")calls 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']
Run Code Online (Sandbox Code Playgroud)

这也会错过某些内置模块,您可以使用单独购买sys

>>> import sys
>>> sys.builtin_module_names
('__builtin__', '__main__', '_ast', '_bisect', '_codecs', ...
#snip...
..., 'thread', 'time', 'xxsubtype', 'zipimport', 'zlib')
Run Code Online (Sandbox Code Playgroud)


Joh*_*ooy 1

安装 ipython

$ sudo apt-get install ipython
Run Code Online (Sandbox Code Playgroud)

然后运行 ​​ipython 并输入import <tab>其中<tab>是 tab 键

如果你已经安装了 python-pygraphviz 包,你可以使用

import pygraphviz
Run Code Online (Sandbox Code Playgroud)