Python 查找包内所有子包,包括 egg 中的包

3 投票
1 回答
714 浏览
提问于 2025-04-15 22:31

给定一个Python包,我该如何自动找到它的所有子包呢?

我以前有一个函数,它会在文件系统中查找,寻找那些里面有__init__.py*文件的文件夹,但现在我需要一种方法,即使整个包在一个egg文件里也能工作。

1 个回答

0

pkgutil 可能会对你有帮助。

你还可以看看 这个StackOverflow的问题,里面有个代码示例来自于 那个问题

kaizer.se

import pkgutil
# this is the package we are inspecting -- for example 'email' from stdlib
import email
package = email
for importer, modname, ispkg in pkgutil.iter_modules(package.__path__):
    print "Found submodule %s (is a package: %s)" % (modname, ispkg)

~unutbu

import pkgutil
for importer, modname, ispkg in pkgutil.walk_packages(path=None, onerror=lambda x: None):
    print(modname)

撰写回答