如何获取Python内置模块的列表?

63 投票
9 回答
90007 浏览
提问于 2025-04-17 07:37

我想要获取一个Python内置模块的名称列表,这样我就可以测试一下函数命名的流行风格,比如下划线命名、驼峰命名或者混合命名。

我知道有一个全局模块索引,但是我在想有没有一个字符串列表,这样使用起来会更方便一些 :)

更新:

len(dir(__builtins__)) = 145  
len(stdlib_list("2.7")) = 430  
help('modules') = 508 # counting manually the output

9 个回答

16

现在有一个第三方的工具包可以做到这一点。它会从官方Python文档中的标准库页面抓取目录,并生成一个库的列表。

你可以通过pip来安装它。

pip install stdlib_list

这样你就能得到一个库的列表了。

In [12]: from stdlib_list import stdlib_list

In [13]: libraries = stdlib_list("3.5")

In [14]: libraries[4:12]
Out[14]: ['abc', 'aifc', 'argparse', 'array', 'ast', 'asynchat', 'asyncio', 'asyncore']

你可以在这里找到源代码

23

这样怎么样?不过,这个方法得到的是内置函数和变量的列表,而不是模块...

dir(__builtins__)

help('modules') 这个命令会给你一个所有模块的列表,具体可以参考如何获取本地安装的Python模块列表?。不过,这个列表不是字符串形式的。

62

内置模块的名称可以在 sys.builtin_module_names 里找到。如果你想查看所有可以导入的模块,可以去 pkgutil.iter_modules

建议在一个干净的 virtualenv 环境中运行这些命令,这样你能得到(几乎)只有Python自带的模块。


需要注意的是,一个“受欢迎程度调查”可能会包含一些使用旧命名规则的模块,因为这些模块是在现在的标准制定之前写的,并且为了兼容旧版本,它们不能更改。这些模块可能在某些方面有用,但对于回答最佳实践的问题,比如“我应该如何命名我的函数?”就不太合适了。想了解这方面的内容,可以参考 PEP8,Python风格指南,特别是“命名约定”这一部分。

撰写回答