列出命名空间包的所有子包

Min*_*Web 3 python setuptools namespace-package

Python 具有创建命名空间包的能力。如何获取命名空间下已安装软件包的列表?

即类似:

import namespace_package
dir(namespace_pageage)
Run Code Online (Sandbox Code Playgroud)

Min*_*Web 5

来自Python 打包用户指南

import pkgutil

list(
    pkgutil.iter_modules(
        namespace_package.__path__,
        namespace_package.__name__ + "."
    )
)
Run Code Online (Sandbox Code Playgroud)

请注意,这不会返回主命名空间包内的(子)命名空间包(即,如果您有嵌套的命名空间包)。

  • 嗯,知道如何解决嵌套命名空间包的问题吗?我想人们可以通过迭代名称空间包的路径列表并递归到子名称空间包来制作一些自制的东西......但是如果“pkgutil”中有一个现成的东西,它会干净得多:) (2认同)