3
給定一個Python包,我該如何自動找到它的所有子包?Python找到包中的所有包,即使在蛋中也是如此
我曾經有一個功能,只是瀏覽文件系統,尋找其中有__init__.py*
文件的文件夾,但現在我需要一種即使整個軟件包都在一個蛋中也能工作的方法。
給定一個Python包,我該如何自動找到它的所有子包?Python找到包中的所有包,即使在蛋中也是如此
我曾經有一個功能,只是瀏覽文件系統,尋找其中有__init__.py*
文件的文件夾,但現在我需要一種即使整個軟件包都在一個蛋中也能工作的方法。
pkgutil可能會有幫助。
另請參閱this SO question.,這是一個代碼示例表格that question。
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)