У меня есть структура каталогов следующим образом:Как импортировать все подмодули?
| main.py
| scripts
|--| __init__.py
| script1.py
| script2.py
| script3.py
С main.py
, модуль scripts
импортируется. Я попытался использовать pkgutils.walk_packages
в сочетании с __all__
, но, используя это, я могу импортировать все подмодули непосредственно под main
с использованием from scripts import *
. Я хотел бы получить их всех под scripts
. Какой был бы самый чистый способ импортировать все подмодули scripts
, чтобы я мог получить доступ к scripts.script1
от main
?
EDIT: Мне жаль, что я был немного расплывчатым. Я хотел бы импортировать подмодули во время выполнения, не указав их явно в __init__.py
. Я могу использовать pkgutils.walk_packages
, чтобы получить имена подмодулей (если кто-то не знает лучшего способа), но я не уверен в самом чистом способе использования этих имен (или, возможно, ImpImporters, который возвращает walk_packages
?) Для их импорта.
будет pkgutil работу, если вы развертываете приложение в виде застежки-молнии? вы можете взглянуть на «import pkg_resources», на всякий случай –