qwer
Апрель 8, 2009 02:52:21
нужно сделать что-то вроде системы плагинов в виде дерева папок (например “plugins/…/…”) с размещенными в них модулями.
как лучше организовать такое ?
пока решил сделать загрузчик в файле plugins/__init__.py , который при своем импорте делает os.walk своей папки и через imp.load_module импортирует остальные модули.
каждый модуль при загрузке будет прописывать себя и свою инфу в глобальный dict или объект.
может есть другие варианты организации такой системы ?
Rodegast
Апрель 8, 2009 11:46:39
Я про это уже писал __import__(Путь к файлу.py). И не надо их все сразу загружать. Загружайте только те которые будут необходимы.
qwer
Апрель 8, 2009 12:06:34
pythonwinспасибо, то что нужно.
Rodegast
Загружайте только те которые будут необходимы.
как ? в момент запуска программы неизвестны названия присутствующих модулей, их количество и функционал. необходимость использования/неиспользования должен определить пользователь в процессе настройки. и между запусками программы любые модули могут быть загружены / изменены.
denz
Апрель 8, 2009 14:09:11
qwer
как ?
Ну, както оно всегда можно. Например NameError перехватывать и ?както? обшаривать плагины.
Rodegast
Апрель 9, 2009 14:52:20
>как ?
Чего тут не понятного? Пользователь сообщает что ему надо и программа динамически подгружает нужные модули.