Sublime Text 不能运行 Jupyter Notebook(.ipynb 文件),也不支持单元格执行、内核状态保持或富输出渲染,因其未实现 Jupyter messaging protocol;所谓“运行”仅限两种方式:将选中 Python 代码发送至本地 IPython 内核执行,或把 .ipynb 当纯 JSON 文本编辑。

Sublime Text 不能运行 Jupyter Notebook(.ipynb 文件),也不能模拟单元格执行、内核状态保持或富输出渲染——它压根没实现 Jupyter 的 messaging protocol。所谓“运行 Jupyter 代码”,实际只有两种可行路径:把选中 Python 代码发给本地 IPython 内核执行,或把 .ipynb 当纯 JSON 文本编辑。别被插件名误导,Jupyter 插件不等于 Jupyter。
为什么按 Ctrl+Alt+B 没反应?
插件不会自动启动内核,只尝试连接已存在的内核进程。常见卡点:
-
jupyter console --existing找不到任何 kernel —— 你根本没手动启动过内核,比如没在终端跑过jupyter console或jupyter notebook -
No kernelspec found错误 ——kernel_name填错了,不是填python3.11,而是要和jupyter kernelspec list输出里那一行完全一致,比如myproject-py或conda-env-data-science-py - Mac 用户从桌面图标启动 Sublime,
PATH读不到~/.zshrc里的修改,jupyter_command必须写绝对路径,例如/opt/miniconda3/bin/jupyter - 插件配置里
jupyter_command留空或填了python -m jupyter—— 它只认系统 PATH 下的可执行文件,不走 Python 模块调用
如何让选中代码真正在 IPython 里跑起来?
绕开 Jupyter 插件的 kernel discovery 陷阱,用 SublimeREPL + SendCode 组合更稳:
- 先确保终端能直接运行
ipython:which ipython有输出,且路径指向你目标环境(如 conda env) - 安装
SublimeREPL后,按Ctrl+Shift+P→ 输入SublimeREPL: Python启动一个 IPython 窗口 - 安装
SendCode,进Preferences → Package Settings → SendCode → Settings,设:{ "prog": "ipython", "syntax_mapping": {"python": "python"} } - 快捷键默认是
Cmd+Enter(macOS)或Ctrl+Enter(Win/Linux),但只在 SublimeREPL 的 IPython 窗口已打开时才有效 - 想出图?在 SublimeREPL 窗口里先手动输
%matplotlib inline,否则plt.show()会卡住
想编辑 .ipynb 文件怎么办?
别指望执行,但可以高效重构 —— 它本质就是带嵌套结构的 JSON:
- 装
Jupyter插件只为.ipynb语法高亮,装Pretty JSON格式化,避免手改破坏结构 - 多光标批量改变量名、正则替换所有
np.为numpy.、用Ctrl+Shift+P→JSON: Validate检查合法性 - 版本控制友好:Git diff 是文本级的,比 Jupyter Lab 里一堆 base64 图片输出干净得多
- 输出字段(
outputs)容易污染 diff,编辑前可用jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace notebook.ipynb清空
最易被忽略的一点:Sublime 里所有“运行”动作都依赖外部进程存活。IPython 窗口关了、内核崩溃了、conda 环境被删了——快捷键就彻底失效,而错误提示往往只是一片沉默。











