代码之家  ›  专栏  ›  技术社区  ›  Dan

python:模块列表(>>>帮助(“模块”)不工作)

  •  3
  • Dan  · 技术社区  · 14 年前

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

    >>> help('modules')
    

    会成功的。但我只是得到

    请稍等,我去拿 所有可用模块的列表…

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

    谢谢,

    3 回复  |  直到 9 年前
        1
  •  1
  •   John La Rooy    14 年前

    安装iPython

    $ sudo apt-get install ipython
    

    然后运行ipython并键入 import <tab> 在哪里? <制表符; 是选项卡键

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

    import pygraphviz
    
        2
  •  4
  •   Kevin    9 年前

    help("modules") 可能需要很长时间,因为它必须先导入每个模块,然后才能搜索该模块的子模块路径。如果任何模块的代码不在 if __name__ == "__main__": 如果该代码需要用户输入,或者进入无限循环,或者由于任何其他原因挂起。

    在引擎盖下面, 帮助(“模块”) 电话 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')
    
        3
  •  1
  •   Alex Martelli    14 年前

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

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

    help('modules') 是关于所有模块的 可获得的 --也就是说,如果你愿意,你可以*进口。对我来说,它不需要像对你那样长的时间,但是如果你安装了足够的扩展,它可能会有数千个或数万个“潜在”模块来显示,因此收集这些信息可能需要一点时间,这并不奇怪。