Run All 从上到下依次执行所有 cell,适合初始化环境;Run All Below 从当前 cell 开始向下执行,跳过 Markdown;命令行 nbconvert 可批量执行并写回原文件,但需注意 kernel 状态与副作用。

直接运行全部 cell:用 Run All 最快
点击菜单栏 Cell → Run All,Jupyter 会从上到下依次执行所有 cell。它不跳过、不判断依赖,只按顺序跑完——适合你刚打开 notebook、想快速初始化整个环境的场景。
注意:如果中间某个 cell 报错(比如调用了未定义变量 print(xyz)),后续 cell 就会停住,不会继续执行。这不是 bug,是设计行为。
- 快捷键是
Ctrl + M然后按A(需先按Esc进入命令模式) - 执行前建议先保存:
Ctrl + S,避免因崩溃丢失修改 - 执行中左下角会显示「Kernel busy」,别乱点其他 cell
只想运行到某一行?用 Run All Below
把光标放在你想停下的那个 cell 的上方(比如你希望只运行到数据加载完成,不跑模型训练),选中该 cell,再点 Cell → Run All Below。它会从当前 cell 开始,向下执行到末尾。
这个操作比手动一个个按 Shift + Enter 稳定,尤其适合调试阶段反复验证某一段逻辑。
- 快捷键是
Ctrl + M然后按B - 如果当前 cell 是 Markdown 类型,它会被跳过(不执行),只运行下面的 code cell
- 注意:它不检查 cell 内容是否可执行,只是机械地往下跑
命令行批量运行:脱离界面也能执行
在终端里运行 jupyter nbconvert --execute --inplace your_notebook.ipynb,就能不打开浏览器、不依赖 GUI,纯靠命令完成全部 cell 执行。
这个方式真正“批量”,且结果会直接写回原文件(--inplace),适合定时任务或 CI/CD 流程。
- 报错时会中断并打印 traceback,但 notebook 文件本身不会被破坏
- 如果 notebook 依赖外部模块(如
torch),确保当前 shell 激活了对应 conda/virtualenv 环境 - 想导出 HTML 同时执行?加
--to html,但此时不会修改原 ipynb
容易被忽略的关键点
所有批量运行都基于当前 kernel 状态。如果你中途改过变量名、删过 import、或者重启过 kernel,之前 cell 的输出和变量就全丢了——Run All 不会帮你恢复上下文,它只重新执行代码,不回溯历史。
更隐蔽的是:某些 cell 可能包含副作用(比如 plt.show() 被多次调用导致图形重复渲染,或 random.seed(42) 被反复重置打乱实验可复现性)。批量运行时这些细节不会提醒你,得自己心里有数。


















