Azure Function部署Python代码遇依赖加载问题求助
Linux Python 3.11 Azure Function App 依赖包加载问题解决方案
针对你提到的.python_packages目录问题——Linux环境下Python 3.10及以上版本的Azure Function App,已经不再默认使用/home/site/wwwroot/.python_packages作为依赖安装路径,相关机制确实发生了变更。旧方案是针对早期Python版本(3.9及以下)的Linux函数应用,或者Windows环境的函数应用,不适用于Python 3.11的Linux实例。
一、正确的依赖部署方式(推荐)
Zip包直接上传时,Azure默认不会自动解析requirements.txt安装依赖,必须开启远程构建(Remote Build),让Azure云端自动构建环境并安装依赖。使用Azure CLI部署时,添加--build remote参数即可:
az functionapp deployment source config-zip -g <你的资源组名称> -n <你的函数应用名称> --src <本地代码zip包路径> --build remote
开启远程构建后,Azure会自动处理requirements.txt,将依赖安装到函数应用的运行时环境中,无需手动创建任何目录。
二、验证依赖是否安装成功
部署完成后,可以通过以下方式确认依赖是否正确安装:
- 登录Azure门户,进入函数应用的部署中心,查看构建日志,确认依赖安装步骤无报错。
- 通过SSH登录函数应用实例,执行
pip list命令,查看已安装的包列表,确认requirements.txt中的包已存在。
三、常见问题排查
- requirements.txt路径错误:确保
requirements.txt放在zip包的根目录,不要嵌套在子文件夹中,否则远程构建无法识别。 - 包版本不兼容:检查
requirements.txt中的包是否支持Python 3.11,避免指定已废弃或不兼容的版本。 - 网络问题导致构建失败:如果函数应用所在的虚拟网络有出站限制,需要确保允许访问PyPI源,否则远程构建无法下载依赖。
四、应急手动安装方案(不推荐)
如果暂时无法使用远程构建,可以手动安装依赖并配置环境变量:
- SSH登录函数应用实例,执行以下命令安装依赖到指定目录:
pip install --target /home/site/wwwroot/.python_packages/lib/site-packages -r /home/site/wwwroot/requirements.txt
- 在Azure门户的函数应用配置 > 应用设置中,添加
PYTHONPATH环境变量,值为:
/home/site/wwwroot/.python_packages/lib/site-packages
注意:这种方式在函数应用重启或重新部署后会失效,因为实例可能被重置,所以仅作为临时应急方案。
内容的提问来源于stack exchange,提问作者matteok
相关产品推荐
相关产品推荐

