Python Поиск всех пакетов внутри пакета, даже если в яйце
Учитывая пакет Python, как я могу автоматически найти все его подпакеты?
Раньше у меня была функция, которая просто просматривала файловую систему и искала папки с __init__.py*
файл в них, но теперь мне нужен метод, который бы работал, даже если весь пакет находится в яйце.
1 ответ
Решение
pkgutil может быть полезным.
Также посмотрите этот ТАК вопрос., это пример кода из этого вопроса.
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)