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

VSCode运行Jupyter单元格报NameError: name 'null' is not defined

问题原因

这个报错的本质是VSCode的Jupyter扩展解析逻辑异常,把.ipynb文件的JSON元数据片段当成Python代码传给了内核执行。
JSON格式里的空值标记是null,但Python中对应的空值是None,内核识别不了null这个标识符,就会抛出NameError: name 'null' is not defined。
「Run All(全部运行)」功能不会触发问题,是因为批量运行走的是全文件解析通道,会提前过滤掉所有元数据、结构标记,只把纯代码内容传给内核;单步运行单元格走的是单单元格提交流程,旧版本Jupyter扩展存在解析bug,会把单元格元数据里的"execution_count": null字段直接拼接到待执行代码的头部,不管单元格里写的是什么代码,执行时都会先跑这段JSON片段,必然触发报错。

解决方法

按操作优先级依次尝试即可:

  • 升级核心扩展:打开VSCode扩展面板,找到官方发布的Jupyter、Python两个扩展,全部升级到最新版本,升级完成后重启VSCode再测试单步运行。这是该问题最常见的诱因,属于旧版本扩展的已知bug,升级后绝大多数场景都能直接修复。
  • 修复损坏的notebook文件:如果升级扩展后问题依旧,说明当前打开的.ipynb文件本身元数据结构损坏:
    1. 关闭当前打开的notebook,在VSCode资源管理器中右键该文件,选择「打开方式」-「文本编辑器」,查看文件的原始JSON内容
    2. 检查每个代码单元格的结构边界,如果发现元数据字段错位、代码块标记缺失,直接删除错位的元数据片段即可;如果怕改坏结构,可以新建一个空白的.ipynb文件,把原有单元格里的纯代码逐段复制过去,彻底避开损坏的元数据。
  • 临时兜底方案:如果暂时没法升级扩展、也不想改动原文件,可以手动选中单元格里需要运行的纯代码片段,右键选择「在交互式窗口中运行选中内容」,绕过单单元格运行的解析bug临时执行代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 08:33:34