【发布时间】:2011-02-17 08:49:36
【问题描述】:
给定一个 Python 包,如何自动找到它的所有子包?
我曾经有一个功能可以浏览文件系统,查找其中包含__init__.py* 文件的文件夹,但现在我需要一种即使整个包都在鸡蛋中也能工作的方法。
【问题讨论】:
标签: python import packages setuptools egg
给定一个 Python 包,如何自动找到它的所有子包?
我曾经有一个功能可以浏览文件系统,查找其中包含__init__.py* 文件的文件夹,但现在我需要一种即使整个包都在鸡蛋中也能工作的方法。
【问题讨论】:
标签: python import packages setuptools egg
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)
【讨论】: