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

如何在Spyder中运行mypy?执行%mypy提示runcell未定义报错

报错原因

runcell是Spyder的IPython运行环境自动注入的内置单元格执行函数,不属于Python标准语法范畴,也不会在用户编写的代码中显式定义。%mypy触发静态检查时,会扫描当前会话的所有执行上下文,无法识别Spyder隐式注入的这个特殊函数,就会抛出名称未定义的报错,该问题和mypy、mypy_ipython扩展是否安装成功无关。

可用解决方案

任选以下一种方案操作即可修复:

  • 全局配置方案(推荐,一劳永逸不影响其他检查规则)
    在当前工作目录下新建mypy.ini配置文件,写入以下配置,将runcell加入mypy的内置函数白名单:
    [mypy]
    builtins_whitelist = runcell
    
    保存配置后重启Spyder的IPython内核,再执行%mypy命令即可正常做类型检查,不会再触发该报错。
  • 单文件/单元格临时声明方案
    如果不想做全局配置,可以在需要做类型检查的代码单元格最顶部,添加一行空函数桩声明,显式告诉mypy该函数存在:
    def runcell(*args, **kwargs) -> None: ...
    
    这行声明不会对代码实际运行产生任何影响,仅作为静态检查的标识,添加后直接运行%mypy即可。
  • 命令行参数屏蔽方案
    执行%mypy命令时追加错误屏蔽参数,直接跳过名称未定义类的检查:
    %mypy --disable-error-code=name-defined
    
    注意:该方案会屏蔽所有名称未定义类的报错,可能漏过代码里真实的变量名、函数名拼写错误,非临时快速验证场景不推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 07:09:17