Я пишу апплет на языке Python для сбора данных с научных приборов и пытаюсь найти лучший способ управления «драйверами» моего устройства.
Каждый Драйвер представлен отдельным модулем python в пакете, который является моей программой. Каждый из них реализует стандартный интерфейс, но в основном это ' гигантский список команд (и сопоставлений функций), специфичных для каждого устройства и шины. В конечном итоге (я пишу это для своей лабораторной группы и планирую поддерживать несколько десятков или около того устройств), я хочу избежать загрузки всех их сразу. Вместо этого во время выполнения я хочу прочитать список модулей в словаре / списке, а затем загружать их только тогда, когда они действительно нужны.
Когда пользователь хочет использовать новое устройство, он выбирает драйвер для использования и передает имя подсистеме драйвера, которая затем проверяет, есть ли этот драйвер в списке загруженных модулей, и если это не так, он вызывает функцию __ import __
и загружает драйвер, затем создает экземпляр объекта устройства, используя драйвер, и возвращает его пользователю для использования.
Мой вопрос: Как лучше всего получить список всех модулей в относительном порядке? Я имею в виду, если я знаю, что драйверы находятся в .. drivers
, есть ли способ получить аккуратный список модулей в этом вложенном пакете? Чтобы проиллюстрировать: обычно я просто вызываю из ..drivers import имя_драйвера
, чтобы импортировать модуль, но поскольку мне не гарантируется, что я в каталоге пакета, не могу только мы os
, чтобы получить список имен модулей.
В любом случае, любые идеи (даже, возможно, лучший способ достичь того, что я хочу - загружаемые «драйверы») будут оценены.