Azure Python函数部署后报错:缺失GLIBC_2.33版本求助
解决方案
问题根源
你遇到的是cryptography库自动升级后,其Rust绑定依赖的GLIBC版本高于Azure Functions运行环境所提供的版本。即使你没手动新增依赖,若requirements.txt中未锁定cryptography的具体版本,部署时会自动拉取最新版,而新版(39.0.0+)依赖GLIBC 2.33+,但Azure Functions消耗计划的默认Debian 11环境仅提供GLIBC 2.31,因此触发报错。
具体修复步骤
锁定cryptography兼容版本:
在requirements.txt中明确指定cryptography的版本为低于39.0.0的稳定版,比如:cryptography==38.0.4这个版本仍使用旧的C绑定,不依赖高版本GLIBC,能兼容Azure的默认环境。
使用Azure远程构建部署:
避免本地构建依赖后上传(本地环境的GLIBC版本可能高于Azure环境),改用Azure的远程构建功能,让依赖在Azure的运行环境中编译安装,确保兼容性。部署命令示例:az functionapp deployment source config-zip -g 你的资源组名 -n 你的函数应用名 --src 代码压缩包路径 --build remote锁定所有依赖版本:
检查requirements.txt中所有未指定版本的依赖,补充具体版本号,防止后续部署时意外升级导致类似兼容性问题。可以用pip freeze > requirements.txt生成当前本地可运行的依赖版本列表,再上传部署。放弃降级Python 3.11的想法:
问题根源不是Python版本,而是依赖库的兼容性,降级Python反而可能引发更多依赖冲突,完全没必要。
内容的提问来源于stack exchange,提问作者José Pelayo
相关产品推荐
相关产品推荐

