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

Azure Python函数CI/CD部署报错:ModuleNotFoundError缺失azure.servicebus模块

解决Azure Python函数CI/CD部署后ModuleNotFoundError: No module named 'azure.servicebus'问题

针对你遇到的CI/CD部署后依赖找不到、本地部署正常的问题,可从以下几个方向排查解决:

1. 检查构建脚本的依赖安装路径

Azure Functions要求Python依赖必须安装在函数代码根目录的.python_packages/lib/site-packages目录下,这样部署包才会包含这些依赖。如果你的构建脚本只是直接运行pip install -r requirements.txt,依赖会被安装到代理的系统Python路径,不会被打包进部署包。

修改构建脚本中的pip命令,指定安装目标路径:

pip install --target .python_packages/lib/site-packages -r requirements.txt

2. 确保构建与运行环境的Python版本一致

虽然你提到工作环境和函数应用都是Python3.7,但ubuntu-latest代理默认可能有多个Python版本,若构建时用了其他版本(比如3.8+),安装的依赖包可能和函数应用的3.7不兼容,导致无法识别。

在构建脚本中明确指定Python3.7执行pip:

python3.7 -m pip install --target .python_packages/lib/site-packages -r requirements.txt

如果代理没有预装Python3.7,可先通过apt安装:

sudo apt-get update && sudo apt-get install python3.7 python3.7-pip

3. 确认部署包包含依赖目录

CI/CD打包时如果漏掉了.python_packages目录,部署到Azure的包就只有函数代码,没有依赖文件。检查打包步骤,确保将该目录包含进去。例如用zip打包时:

zip -r function_app.zip .python_packages/ 函数代码文件/ requirements.txt

4. 检查Azure函数应用的配置设置

  • 确认函数应用配置中的Python版本设置为3.7;
  • 如果开启了WEBSITE_RUN_FROM_PACKAGE,确保打包的zip文件完整包含所有依赖;
  • 可临时关闭WEBSITE_RUN_FROM_PACKAGE,改用Zip部署方式测试,看是否能正常加载依赖。

5. 清理CI/CD代理的依赖缓存

代理可能缓存了旧版本的依赖包,导致安装的azure.servicebus不匹配当前环境。在构建脚本中加入清理缓存的命令:

pip cache purge
pip install --no-cache-dir --target .python_packages/lib/site-packages -r requirements.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:35:32