Динамическая загрузка модулей Python

Я пытаюсь динамически загрузить модули, которые я создал.

Прямо сейчас это работает правильно:

import structures.index

Но если я попробую то же самое, импортировав его динамически, произойдет сбой.

struct = __import__("structures.index")

Ошибка предоставлена:

Error ('No module named structures.index',)

Есть идеи почему?

Изменить: При использовании полной области (это вроде работает?):

struct = __import__("neoform.structures.index")

Это не выдает никаких ошибок, однако, оно не загружает модуль индекса, вместо этого он загружает модуль «неоформ».

Результатом "struct" является:

<module 'neoform' from '/neoform/__init__.py'>

Кроме того, как дополнительный вопрос, как я могу создать экземпляр класса в динамически загруженном модуле? (при условии, что все модули содержат общее имя класса).

Изменить: Решение: (спасибо Coonj & Rick) Это закончилось тем, что сработало. Не уверен, почему (пока), ноfromlist должно было быть что-то «что-нибудь», так как это работало, когда я помещал букву «a» в качестве значения (странно, учитывая, что в файле был только 1 класс).

def get_struct_module(self, name):
    try:
        return = __import__("neoform.structures." + name, fromlist='*')
    except ImportError, e:
        self.out.add("Could not load struct: neoform.structure." + name + "\n\n" + "Error " + str(e.args))

Ответы на вопрос(7)

Ваш ответ на вопрос