Jupyter Notebook重启后出现‘name is not defined’错误的原因及解决方法
解决Jupyter Notebook重启后
name is not defined错误 核心原因
Jupyter Notebook保存的只是代码文本、输出结果和笔记内容,不会保存内核内存中的变量、函数等运行上下文。你关闭笔记本后,内核进程就终止了;次日重新打开时,内核是全新启动的,之前定义的所有变量都不存在,运行依赖这些变量的代码自然会抛出name is not defined错误——导入pandas和numpy只是加载库,没法恢复之前定义的变量。
快速解决方法
- 按顺序重新运行依赖代码:找到报错变量的定义代码块,从笔记本开头到该代码块的所有内容依次执行(可以用顶部菜单栏的
Cell > Run All Above快速执行),确保变量、函数等上下文被重新创建。 - 定位变量定义:如果不想全量运行,直接找到定义该变量的代码块单独运行,再执行报错的代码即可。
长期预防方案
- 规范代码顺序:每次关闭前,整理代码块的执行顺序,确保后续代码的依赖项都在前面的块中,避免跨块的无序依赖。
- 持久化关键数据:如果有需要保留的数据集或变量,不要依赖内核内存,而是用文件存储——比如用
pandas.to_csv()保存DataFrame,用numpy.save()保存数组,下次打开时直接从文件加载。 - 用魔法命令存小变量:对于小体量的变量(比如配置参数),可以用
%store魔法命令:# 保存变量 %store my_variable # 重启后恢复变量 %store -r my_variable
内容的提问来源于stack exchange,提问作者Neo Mmusi
相关产品推荐
相关产品推荐

