AttributeError: ‘Number’ object has no attribute ‘blur’

在 Gradio 5.31.0 中,给 gr.Number() 绑定 .blur() 事件会直接抛出 AttributeError: 'Number' object has no attribute 'blur' ,原因在于该组件未实现 blur 事件。该问题已在 Issue #11261 中被修复

快速结论:在 Gradio 5.31.0 中,给 gr.Number() 绑定 .blur() 事件会直接抛出 AttributeError: 'Number' object has no attribute 'blur',原因在于该组件未实现 blur 事件。该问题已在 Issue #11261 中被修复并关闭,遇到此报错时优先升级 Gradio。

适用环境:Windows;Gradio 5.31.0;gradio_client 1.10.1;Python 依赖版本见 Issue 原文,未确认 Python 解释器版本、CUDA 或显卡信息。

最快修复方案:暂无确认的一步修复方案(Issue 正文和评论摘要未给出具体 PR 号或已验证的安装命令)。可优先尝试将 Gradio 升级到包含该修复的版本,再调用 number.blur(...)。

注意事项:Issue 中的评论包含“让 gr.Number 继承自 gr.Textbox”等改造建议,属于讨论性意见,不代表最终修复方式;升级前请核对目标版本是否包含 #11261 的修复。

问题场景

用户在 Windows 上运行 Gradio 5.31.0 脚本,创建 gr.Number() 组件后调用 number.blur() 注册失焦事件,触发 AttributeError。Issue 指出 gr.Textbox 的 @document 装饰器包含 "blur",而 gr.Number 的装饰器只有 "change"、"submit"、"style",最新的 gr.Number 文档中也未列出该事件。

报错原文

Traceback (most recent call last):
  File "C:\Users\user\projects\gradio-sandbox\src\__main__.py", line 19, in <module>
    number.blur()
    ^^^^^^^^^^^
AttributeError: 'Number' object has no attribute 'blur'

原因分析

最可能的原因是 gr.Number 组件未注册 blur 事件:Issue 对照源码指出,gr.Textbox 声明了 @document("change", "submit", "blur", "style"),而 gr.Number 仅有 @document("change", "submit", "style")。在包含该缺陷的版本中,number.blur 属性不存在,因此调用即报错。

环境排查

  • 确认当前安装的 Gradio 版本:Issue 中出问题的是 5.31.0。
  • 确认 gradio_client 版本是否与 Gradio 匹配(Issue 中为 1.10.1)。
  • 确认目标版本是否已包含 #11261 的修复(该 Issue 已于 2025-05-27 关闭)。
  • Python 解释器版本、CUDA、显卡等信息 Issue 未提供,不属于本次排查范围。

解决步骤

  1. 运行环境检查,确认 gradio 的实际版本,避免仅看依赖清单。
  2. 将 Gradio 升级到包含 #11261 修复的版本;具体版本号请以对应发行说明和修复 PR 为准。
  3. 升级后用 Issue 中的复现脚本最小化验证:创建 gr.Number() 并调用 number.blur(),确认不再抛出 AttributeError。
  4. 若目标版本仍无此事件,可优先尝试 Issue 评论中给出的变通写法:用 gr.render 配合 gr.State 保存数值,在渲染函数内创建 gr.Number 并绑定 blur。该写法是评论者提供的复现/验证代码,Issue 未明确标注其作为正式修复验证通过,使用前需自行测试。

验证方法

运行复现脚本,确认 number.blur(...) 不再抛出 AttributeError;再启动界面,在数字输入框中输入后点击其他区域触发失焦,确认绑定的 blur 回调被正常执行。

参考来源

gradio-app/gradio #11261

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 32082

发表回复

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