You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Functions Python应用多文件导入报错问题求助

解决Azure Functions Python模块导入问题

问题分析

你的问题出在相对导入路径配置和Azure Functions的Python模块查找机制上。prep_backup应该是和final_execution同属shared_code目录下的模块,但默认情况下Python不会自动将shared_code加入模块搜索路径,且final_execution里用了绝对导入方式,导致找不到目标模块。

具体解决办法

1. 改用相对导入语句

如果prep_backup.py和final_execution.py在同一个shared_code目录下,修改final_execution.py里的导入语句为相对导入:

from .prep_backup import func1, func2

开头的.表示引用当前目录下的模块,符合Python包内导入的规范。

2. 手动添加模块搜索路径

如果相对导入不适用(比如需要跨复杂目录调用),在HttpExample/__init__.py的最顶部添加代码,将shared_code目录加入Python的模块搜索路径:

import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'shared_code')))

这段代码会动态计算shared_code的绝对路径并加入搜索列表,确保Python能找到该目录下的所有模块。

3. 验证目录结构与文件规范

确保你的目录结构符合Azure Functions的要求,且包含必要的标识文件:

函数应用根目录
├── HttpExample
│   ├── __init__.py
│   └── function.json
├── shared_code
│   ├── __init__.py  # 必须存在,让Python识别为可导入包
│   ├── final_execution.py
│   └── prep_backup.py
└── requirements.txt

注意:shared_code目录下必须有空的__init__.py文件,否则Python无法将其视为合法模块包。

4. 本地与部署验证

  • 本地调试时,确保在函数应用根目录下启动调试工具,避免路径上下文错误。
  • 部署到Azure时,检查.funcignore文件,确认没有排除shared_code目录,确保所有相关文件都能被正确上传。

内容的提问来源于stack exchange,提问作者RCB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 13:07:04