Dependency constraint prevents upgrading to Pillow >= 13.x (blocks security fixes)

当 Gradio 的依赖声明把 Pillow 锁定在上限范围内时,会出现 Dependency constraint prevents upgrading to Pillow >= 13.x (blocks security fixes) ;这通常导致项目无法安装新版 Pillow,也就无法完成安全

快速结论:当 Gradio 的依赖声明把 Pillow 锁定在上限范围内时,会出现 Dependency constraint prevents upgrading to Pillow >= 13.x (blocks security fixes);这通常导致项目无法安装新版 Pillow,也就无法完成安全修复与升级。请先确认 Gradio 版本,以及该版本是否已包含针对该依赖变更的发布。

适用环境:Issue 已确认的环境为 Linux、Python 3.12.3、Gradio 6.30.0、gradio_client 2.7.2,依赖组合中 Pillow 为 12.3.0。Issue 未提供 CUDA、PyTorch 与显卡信息,因此这里不作推断。

最快修复方案:暂无确认的一步修复方案。该问题已在 PR #14005 中处理,但对应变更在 Issue 关闭时尚未随新版本发布;因此可优先尝试升级到包含该修复的新版 Gradio。

注意事项:上游已将该问题标记为 #13999 的重复项,并说明修复已在 #14005 合入;但在新版本发布前,直接升级 Pillow 会继续受 Gradio 依赖约束影响。在升级 Gradio 前,不建议用强制跳过依赖检查的方式规避限制,以免引入未经上游验证的兼容性问题。

问题场景

用户在 Linux 下使用 Python 3.12.3 运行 Gradio 6.30.0 / gradio_client 2.7.2 时,项目依赖中包含 pillow(当前环境为 12.3.0)。由于 Gradio 的 requirements.txt 对 Pillow 设置上限(pillow>=8.0,<13.0),生产环境或容器化应用无法把 Pillow 升级到 13.x 及以上版本,从而阻塞安全扫描中提示的修复建议。

报错原文

Dependency constraint prevents upgrading to Pillow >= 13.x (blocks security fixes)

原因分析

最可能的原因是 Gradio 的依赖声明对 Pillow 设置了严格上限,导致依赖解析器不会选择 13.x 及以上版本。Issue 报告同时提到,低于 12.3.0 的 Pillow 会触发 Trivy、Snyk、Dependabot 等安全扫描告警;而用户又被 Gradio 的版本上限挡住,无法升级到已修复的版本。

Issue 评论确认该问题是 #13999 的重复项,并已在 PR #14005 中处理,但相关变更在关闭时尚未发布到新版 Gradio。因此,在旧版 Gradio 上继续遇到该限制属于预期现象。

环境排查

  • 确认 Gradio 版本是否为 6.30.0,或是否仍处于未包含 #14005 修复的版本。
  • 确认 Python 版本为 3.12.3(Issue 环境),并核对 gradio_client 为 2.7.2。
  • 检查当前 Pillow 版本(Issue 环境中为 12.3.0),以及项目依赖或锁文件中是否仍固定在受限范围。
  • 检查依赖声明位置:Issue 指向 requirements.txt,并建议同步审查 setup.py / pyproject.toml(如适用)。
  • 确认安全扫描工具(Trivy、Snyk 或 Dependabot)报告的具体 Pillow 漏洞与目标修复版本。
  • CUDA、PyTorch、显卡等信息在 Issue 中未提供,如排查相关运行问题,需要另行确认。

解决步骤

  1. 先确认现有 Gradio 版本:python -c "import gradio; print(gradio.__version__)",判断是否为 6.30.0 或未包含修复的版本。
  2. 查看 Issue 中引用的 Gradio requirements.txt,确认 Pillow 是否仍被限制为 pillow>=8.0,<13.0。
  3. 关注 Gradio 新版本发布,可优先尝试升级到包含 #14005 修复的版本;升级后重新解析依赖。
  4. 如果项目中维护了锁文件或容器镜像,请同步更新锁文件并重建镜像,避免旧约束继续生效。
  5. 如果升级后仍无法安装 Pillow 13.x,请检查是否还有其他项目依赖对 Pillow 设置上限,或缓存中仍保留了旧的 Gradio 元数据。

验证方法

升级到包含修复的 Gradio 版本后,检查已安装 Gradio 的依赖元数据中 Pillow 的上限是否已放宽,并确认依赖解析结果可以选择 Pillow 13.x 及以上版本。随后重新运行安全扫描,确认阻断升级的依赖约束不再出现。若仍被限制,应核对实际安装的 Gradio 版本与锁文件,确认新版本约束已生效。

参考来源

gradio-app/gradio #14010

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 30639

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注