【问题标题】:Python: List of Modules (>>> help('modules') not working)Python:模块列表(>>> 帮助('modules')不起作用)
【发布时间】:2015-12-15 02:50:16
【问题描述】:

我想要一份我的模块列表,然后被告知:

>>> help('modules')

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

请稍等,我正在收集一个 所有可用模块的列表...

在我杀死它之前超过 10 分钟。

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

谢谢,

【问题讨论】:

    标签: python ubuntu module


    【解决方案1】:

    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')
    

    【讨论】:

      【解决方案2】:

      如果您想查看已导入(直接或间接)的模块,

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

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

      【讨论】:

      • 我主要是想找到一个列表,以便我可以看到我最近安装的 graphviz 模块的名称,我尝试过的任何名称都找不到该模块。跨度>
      【解决方案3】:

      安装 ipython

      $ sudo apt-get install ipython
      

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

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

      import pygraphviz
      

      【讨论】:

      • 太棒了!您还可以使用它查看班级中的所有项目。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 2015-08-25
      • 1970-01-01
      • 2016-01-31
      • 2020-09-21
      • 2016-10-13
      • 2012-02-17
      相关资源
      最近更新 更多