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

Azure Web App部署报错求助:cryptography要求setuptools 18.5及以上版本

解决Azure Web App部署时setuptools版本不兼容问题

嘿,这个Azure部署的坑我踩过好几次了!明明手动升级了setuptools还是报RuntimeError: cryptography requires setuptools 18.5 or newer, please upgrade to a newer version of setuptools,其实问题出在部署环境的依赖加载顺序或者缓存上,给你几个靠谱的解决办法:

1. 强制在requirements.txt顶部指定setuptools版本

直接把setuptools的版本要求放在requirements.txt最开头,这样部署脚本会优先升级它,再处理cryptography和其他依赖。比如:

setuptools>=65.0.0
cryptography>=41.0.0
# 你的其他依赖包...

这么做的核心是让pip先完成setuptools的升级,再安装对版本有要求的cryptography,从根源上避免版本不匹配。

2. 修改部署脚本,提前升级setuptools

如果默认的deploy.cmd没按预期执行,你可以自定义部署流程,在安装依赖前强制升级setuptools。找到部署用的deploy.cmd文件,在处理requirements.txt的步骤前添加这行命令:

python -m pip install --upgrade setuptools

这样能确保在安装任何依赖之前,setuptools已经被升级到满足要求的版本。

3. 检查并升级Azure App Service的Python版本

有些老版本的Python(比如3.6及以下)自带的setuptools版本本身就低于18.5,即使临时升级,也可能因为环境限制无法生效。你可以登录Azure门户,进入你的Web App,在「配置」->「常规设置」里检查Python版本,尽量选择3.8及以上的版本,这些版本自带的setuptools通常已经满足cryptography的要求,能减少这类冲突。

4. 清除Azure部署缓存

Azure有时候会缓存之前的依赖环境,导致新安装的setuptools没被正确加载。你可以在Azure门户的「部署中心」->「高级选项」里,点击「清除缓存」,然后重新触发部署,确保部署环境是完全干净的。

附上你提供的部署日志片段:

Command: "D:\home\site\deployments\tools\deploy.cmd"
Handling python deployment.
Detected requirements.txt. You can skip...

内容的提问来源于stack exchange,提问作者Ingrid Stoleru

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:22:12