如何获取所有Python标准库模块的列表

sys.builtin_module_names除了标准库,我想要类似的东西。其他无效的东西:

  • sys.modules -仅显示已加载的模块
  • sys.prefix -包含非标准库模块EDIT的路径,并且似乎在virtualenv中不起作用。

我想要此列表的原因是可以将其传递给http://docs.python.org/library/trace.html的--ignore-

module--ignore-dir命令行选项trace

因此,最终,我想知道在使用trace或时如何忽略所有标准库模块sys.settrace

编辑:我希望它在virtualenv内部工作。http://pypi.python.org/pypi/virtualenv

EDIT2:我希望它适用于所有环境(例如,跨操作系统,在virtualenv内部和外部)。

回答:

为什么不自己解决标准库的组成部分呢?

import distutils.sysconfig as sysconfig

import os

std_lib = sysconfig.get_python_lib(standard_lib=True)

for top, dirs, files in os.walk(std_lib):

for nm in files:

if nm != '__init__.py' and nm[-3:] == '.py':

print os.path.join(top, nm)[len(std_lib)+1:-3].replace(os.sep, '.')

abc

aifc

antigravity

--- a bunch of other files ----

xml.parsers.expat

xml.sax.expatreader

xml.sax.handler

xml.sax.saxutils

xml.sax.xmlreader

xml.sax._exceptions

您可能需要添加检查,以避免site-packages需要避免使用非标准库模块。

以上是 如何获取所有Python标准库模块的列表 的全部内容, 来源链接: utcz.com/qa/426690.html

回到顶部