我正在尝试使用动态导入 Python 模块importlib
。
我的项目是一个 Azure 函数应用,具有以下文件结构:
Shared_Code/
├── __init__.py
├── model.py
└── rule_engine.py
在rule_engine.py
我尝试导入的文件中model.py
:
logging.info(__name__)
importlib.import_module(
'Shared_Code.model', package=None
)
上面的代码打印
__app__.Shared_Code.rule_engine.py
并在Linux和Azure Cloud上正确导入模块。
但是,在Windows上执行完全相同的代码时,我收到一个错误,即Shared_Code
找不到该模块。
然后我使用了以下
importlib.import_module(
'__app__.Shared_Code.model', package=None
)
它适用于两者,但在Azure Cloud上运行时会中断。
是否有一个通用的解决方案,而无需根据操作系统执行手动检查和 if 子句?