如何为Bicep/Zip部署的Python Azure Function配置requirements.txt
解决Azure Function Zip部署中requirements.txt依赖安装问题
一、先把requirements.txt的基础配置搞对
- 把
requirements.txt放在函数应用的根目录(和host.json平级),别乱放子文件夹里。内容要明确指定依赖版本,避免模糊版本号导致安装冲突,示例:requests==2.31.0 azure-functions==1.17.0
二、Zip打包不能瞎打
- 打包时要包含根目录下所有必要文件:
host.json、requirements.txt,以及你的Blob Trigger函数文件夹(比如BlobTriggerFunc/)。 - 必须进入项目根目录再执行打包命令,别把父文件夹也包进去,终端命令示例:
这样Azure解压后,cd 你的函数项目根目录 zip -r deploy.zip .requirements.txt会在正确位置被识别。
三、打开Azure的自动依赖安装开关
- 先确认函数应用的Python版本和本地开发版本完全一致(比如都是3.9),可在Azure门户的函数应用→配置→常规设置中查看。
- 添加应用设置强制Azure部署时安装依赖:
- 进入函数应用→配置→应用程序设置
- 新增设置,键填
SCM_DO_BUILD_DURING_DEPLOYMENT,值设为true
开启后,Azure部署时会自动读取requirements.txt安装所有依赖。
四、查日志定位问题
- 如果仍有异常,查看部署日志:进入函数应用→部署中心→日志,排查是否存在依赖安装失败的报错(如PyPI网络连接问题、版本不兼容)。
- 也可通过Kudu控制台验证:访问
https://<你的函数应用名>.scm.azurewebsites.net/DebugConsole,进入site/wwwroot目录,先确认requirements.txt已上传,再检查python_env/lib/pythonX.X/site-packages下是否存在目标依赖。
五、本地预构建依赖再打包(备选方案)
若Azure在线安装依赖频繁失败,可本地提前安装依赖后再打包:
- 在本地项目根目录执行命令:
pip install -r requirements.txt --target .python_packages/lib/site-packages - 打包时将
.python_packages文件夹一并包含,部署后Azure会直接使用本地预安装的依赖,无需在线下载。
内容的提问来源于stack exchange,提问作者theproductivepickle
相关产品推荐
相关产品推荐

