Azure Functions报错:模块'azure.functions'无'SqlRowList'属性
问题分析与解决方案
从报错信息和环境差异来看,核心问题是线上环境的azure.functions版本不包含SqlRowList类型,结合本地与线上的Python版本、依赖配置差异,可按以下步骤解决:
1. 锁定依赖包版本
你本地使用的是azure-functions==1.11.3b1(beta版本),而线上开启PYTHON_ISOLATE_WORKER_DEPENDENCIES=1后,会依据requirements.txt安装依赖:
- 确保
requirements.txt中明确写入azure-functions==1.11.3b1,避免线上自动安装不包含SqlRowList的稳定版 - 若已指定版本,可通过Kudu控制台查看
home/site/wwwroot/.python_packages/lib/site-packages/azure/functions目录,确认依赖包是否正确安装
2. 修正类型注解的写法
SqlRowList并非func模块下的属性,正确的导入和使用方式如下:
from azure.functions import HttpRequest, HttpResponse, SqlRowList def main(req: HttpRequest, ressources: SqlRowList) -> HttpResponse: # 函数逻辑代码
替换当前代码中func.SqlRowList的写法,确保类型注解引用正确的类。
3. 统一本地与线上Python版本
线上环境使用Python 3.8,本地是3.9,版本差异可能引发依赖兼容性问题:
- 本地切换到Python 3.8重新调试,验证依赖包的适配性
- 若需使用Python 3.9,可在Azure静态Web应用的配置中修改运行时版本为3.9(需确认服务支持的版本范围)
4. 验证隔离模式配置
确认PYTHON_ISOLATE_WORKER_DEPENDENCIES=1已生效:
- 登录Azure门户,进入静态Web应用的配置->应用程序设置,检查该配置项是否正确设置为1
- 通过Kudu工具查看
home/site/wwwroot/.python_packages目录,确认azure-functions的版本为1.11.3b1
内容的提问来源于stack exchange,提问作者user19941595
相关产品推荐
相关产品推荐

