Python代码在其他IDE正常仅Atom用Hydrogen运行出现NameError求助
问题原因
这个问题和代码本身无关,完全是Atom的Hydrogen包的执行逻辑导致的:
Hydrogen基于Jupyter内核实现交互式代码执行,和Mu-editor等普通IDE一次性执行整个脚本的逻辑不同,它不会默认自动加载你当前文件里所有未执行的代码到运行时命名空间。只有你手动执行过的代码段里定义的变量/函数,才会被存入内核的全局作用域。
你遇到的报错本质是**theBoard字典的定义代码段没有被提前执行**,所以运行到for循环时内核找不到对应的变量。
排查解决步骤
- 运行代码时选择「执行整个文件」的操作,不要单独选中for循环部分执行
- 如果你用
# %%标记了代码单元格分隔,先手动执行theBoard定义所在的单元格,确认执行成功后再跑后续的循环代码 - 若之前出现过内核崩溃重启的情况,重启后所有已定义的变量都会被清空,需要重新执行全部代码
- 可以在for循环前加一行
print(dir())单独执行,查看输出的全局变量列表里是否包含theBoard,确认变量是否成功注入命名空间
内容的提问来源于stack exchange,提问作者DOdrums
相关产品推荐
相关产品推荐

