HTTP_422_UNPROCESSABLE_ENTITY is deprecated

用户在使用 Gradio 框架(版本 6.19.0)启动应用时,终端或日志中打印出 StarletteDeprecationWarning 警告,提示 HTTP_422_UNPROCESSABLE_ENTITY 已被弃用。此警告不影响功能,但会污染日志输出。

HTTP_422_UNPROCESSABLE_ENTITY is deprecated

HTTP_422_UNPROCESSABLE_ENTITY is deprecated

快速结论:该报错是 Starlette 的废弃警告,通常出现在使用 Gradio 6.19.0 及更高版本的环境下。优先确认你的 gradio/routes.py 文件中是否仍在使用已废弃的 HTTP_422_UNPROCESSABLE_ENTITY 常量。

问题场景

用户在使用 Gradio 框架(版本 6.19.0)启动应用时,终端或日志中打印出 StarletteDeprecationWarning 警告,提示 HTTP_422_UNPROCESSABLE_ENTITY 已被弃用。此警告不影响功能,但会污染日志输出。

报错原文

StarletteDeprecationWarning: 'HTTP_422_UNPROCESSABLE_ENTITY' is deprecated. Use 'HTTP_422_UNPROCESSABLE_CONTENT' instead.

原因分析

Starlette 1.3.1 及以上版本遵循 RFC 9110,将 HTTP 422 状态码的命名从 HTTP_422_UNPROCESSABLE_ENTITY 修改为 HTTP_422_UNPROCESSABLE_CONTENT。Gradio 的 gradio/routes.py 中仍使用了旧的常量名,因此触发该废弃警告。

环境排查

  • Python:未指定版本,建议 3.8+
  • Gradio:6.19.0(Issue 中使用的版本)
  • Starlette:1.3.1(Issue 中使用的版本)

解决步骤

  1. 找到 Gradio 安装路径下的 routes.py 文件。通常位于:site-packages/gradio/routes.py
  2. 搜索 HTTP_422_UNPROCESSABLE_ENTITY 字符串。
  3. 将其替换为 HTTP_422_UNPROCESSABLE_CONTENT

修改内容仅为一行重命名(one-line rename),可优先尝试此修改。

验证方法

重新启动 Gradio 应用,确认终端不再输出 StarletteDeprecationWarning 关于 HTTP_422_UNPROCESSABLE_ENTITY 的警告信息。

参考来源

gradio-app/gradio #13548

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 10727

发表回复

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