Вы можете попробовать импортировать model
, используя относительный путь:
importlib.import_module('.model', package='Shared_Code')
Редактировать : После некоторых исследований я пришел к выводу, что это проблема с Azure, а не с Python.
Не существует одного совпадения строки __app__
в полном коде CPython .
Тем не менее, это PR Azure-functions-python-worker , где модуль верхнего уровня __app__
реализован для абсолютного импорта.
Полагаю, это ошибка в Azure-functions-python-worker или любой другой платформе Azure, на которой вы работаете, где они ведут себя по-разному в Linux и Azure Cloud VS Windows.
Единственное, что я думаю, вы можете сделать:
- Посмотрите, есть ли какая-либо конфигурация в вашей службе Azure, может быть, в Windows по умолчанию что-то другое (я не работаю с платформой Azure, извините).
- Заполните вопрос в azure-functions-python-worker , пытаясь включить минимальный воспроизводимый пример, и посмотрите, о чем они думают (возможно, у них есть ответ, возможно, вы нашли ошибку).
- Решение Pythonic: импортируйте модуль без
__app__
внутри try/except ModuleNotFoundError
, а в случае сбоя импортируйте его снова с __app__
:
try:
importlib.import_module(
'Shared_Code.model', package=None
)
except ModuleNotFoundError:
# In Windows, __app__ is mandatory
importlib.import_module(
'__app__.Shared_Code.model', package=None
)
Я знаю, что последнее именно то, о чем вы просите , а не , но если это проблема с платформой (и я уверен, что это так), вы ничего не можете сделать, кроме иметь дело с этим.