#python
С некоторых пор (как отменили относительный импорт) не могу нормально решить такой вопрос: Предположим, структура программы app/ __init__.py foo/ __init__.py handler.py Как из модуля handler.py загрузить что-либо из пакета foo? Всё дело в том, что изначально имя пакета foo неизвестно, загружаю я его с помощью importlib. Пока я нашёл такой костыль: обрезаю переменную __name__, которая в handler.py равна 'foo.handler', т.е. так foo_name = __name__.rsplit('.', 1)[0] а потом загружаю необходимый мне модуль needle_module = importlib.import_module('.' + <имя модуля>, foo_name) но, как-то, не кошерно это...
Ответы
Ответ 1
Я вот смотрю на вашу схему и вижу в ней что и сам хендлер ваш в этом же пакете, так спрашивается зачем мучатся когда достаточно имя файла написать?? собственно видел такое mod=__import__("attr") где attr имя файла attr.pyОтвет 2
Может добавить путь в sys.path?Ответ 3
In handler.py: from ..module import function
Комментариев нет:
Отправить комментарий