连续按两次 i(i,i)可安全中断当前执行代码而不重启内核、不丢失变量;单次 i 在命令模式下是进入编辑模式,在编辑模式下仅输入字母 i;需确保单元格处于命令模式(蓝色边框)并快速连按。

直接按 I, I(连续两次)就能中断当前正在执行的代码,不重启内核、不丢变量——这是最常用也最安全的做法。
为什么不能只按一次 I?
单次 I 是「中断」(interrupt),但 Jupyter 的命令模式下,I 默认绑定的是「进入编辑模式」;只有在命令模式下连续快速按两次 I,才会触发 Kernel → Interrupt。如果你在编辑模式(绿色边框)下按,它只会插入字母 i。
- 确保单元格处于命令模式(蓝色边框,或按
Esc退出编辑) - 连续、快速敲击两次
I(不是Ctrl+C,也不是鼠标点停止按钮) - 观察右上角状态栏:从
Busy变为Idle,说明已中断成功
Kernel → Interrupt 和 Kernel → Restart 的区别
前者只终止当前运行的 cell,保留所有已定义的变量和导入的模块;后者会清空全部命名空间,重置整个 Python 运行环境。遇到死循环或耗时计算卡住时,优先用 Interrupt,避免重跑前面几十行初始化代码。
-
Interrupt:适合调试中临时打断、检查中间状态 -
Restart:适合修复因全局变量污染、内存泄漏或异常导致的内核不稳定 - 注意:
Restart & Clear Output不等于Interrupt,它会清空输出区域,但变量仍被清除
终端里卡死怎么办?Ctrl+C 不起作用时的备选方案
极少数情况下(比如调用了底层 C 扩展、陷入信号屏蔽状态),I,I 或工具栏「停止」按钮可能无响应。此时需切换到启动 Jupyter 的终端窗口,手动发送中断信号:
- 确认你是在启动 Notebook 的那个终端(不是浏览器标签页)
- 按
Ctrl+C—— 如果显示KeyboardInterrupt并回到命令行,说明成功 - 如果第一次
Ctrl+C没反应,再按一次;若仍卡住,可尝试Ctrl+Z暂停进程,再用kill %1强制结束 - 不要直接关掉终端窗口,否则 Jupyter 服务还在后台跑,下次启动可能端口冲突
容易被忽略的细节:中断后状态不一定“干净”
中断只是让 Python 解释器跳出当前执行点,并不会自动回滚文件写入、数据库连接、线程启动等副作用操作。比如你中断了一个 with open(...) as f: f.write(...),文件可能已部分写入;中断一个 threading.Thread.start() 后,线程可能仍在后台运行。
真正需要「原子性控制」的场景(如批量写文件、训练模型中途保存),得靠代码里自己加 try/except KeyboardInterrupt 处理,而不是依赖外部中断机制。











