Не работает динамическая загрузка загруженных плагинов

Есть программа которая сперва скачивает с сервера самописный модуль, а потом использует его. Проблема возникла только в Astra-Linux. Модуль скачивается, но работать начинает только после перезапуска программы. Если её не перезапустить ошибка. Приветствуются любые предположения или идеи.

Нет такого файла или каталога: /path/mail_plugin.pyc.
ERROR   Failed to load plugin "mail_plugin"

Этот же код на Ubuntu 18.04 работает нормально, без перезапусков.

Права при копировании проверял. Модуль скачивает в другом потоке ставил большее время ожидания. Сейчас модули загружаются при помощи. imp.load_compiled() Переписывал на importlib. Тоже не помогает.

Использовал дурацкий хак. В цикле начинаю проверять размер этого файла при помощи. os.path.getsize('абсолютный путь') - с абсолютным путём до модуля, только после этого его видит и загружает. Если использовать os.path.getsize('переменная') c переменной, которая идентична абсолютному пути ошибка остаётся.

    if module_name not in sys.modules:
        # Нужно задать явно путь для поиска зависимостей в плагинах
        if module_path not in sys.path:
            sys.path.append(module_path)
        try:
            # TODO fix deprecated method
            # noinspection PyDeprecation
            imp.load_compiled(module_name, path.join(module_path, module_name + COMPILED_EXTENSION))
        except Exception:
            try:
                # TODO fix deprecated method
                # noinspection PyDeprecation
                imp.load_source(module_name, path.join(module_path, module_name + NOT_COMPILED_EXTENSION))
            except Exception:
                raise
    return sys.modules[module_name]

Ответы (0 шт):