У меня следующая структура папок:
- MyProject
- App1
- some_module1.py
- some_module2.py
- App2
- some_other_module1.py
- some_other_module2.py
Внутри каждого из модулей (например, some_module1.py) есть класс, который расширяется от базового класса в мой случай, продюсер.
Я пытаюсь динамически загружать этот класс. Для этого у меня есть список «установленных приложений», который выглядит следующим образом:
INSTALLED_APPS = (
'App1',
'App2',
)
Я пытаюсь написать функцию, которая будет проверять каждый «пакет приложений» для определенного класса производителя и гарантировать, что он расширяется от базового класса производителя. . Примерно так:
module_class = 'some_module1.SomeClass'
# Loop through each package in the INSTALLED_APPS tuple:
for app in INSTALL_APPS:
try:
#is the module_class found in this app?
#App1.some_module1.SomeClass - Yes
#App2.some_module1.SomeClass - No
# is the class we found a subclass of Producer?
exception ImportError:
pass
Я пробовал поэкспериментировать с imp и importlib, но, похоже, он не поддерживает такой импорт. Могу ли я добиться этого?