Python 查找包内所有子包,包括 egg 中的包
给定一个Python包,我该如何自动找到它的所有子包呢?
我以前有一个函数,它会在文件系统中查找,寻找那些里面有__init__.py*
文件的文件夹,但现在我需要一种方法,即使整个包在一个egg文件里也能工作。
1 个回答
0
pkgutil 可能会对你有帮助。
你还可以看看 这个StackOverflow的问题,里面有个代码示例来自于 那个问题。
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)
import pkgutil
for importer, modname, ispkg in pkgutil.walk_packages(path=None, onerror=lambda x: None):
print(modname)