根本原因是未安装或未启用Python扩展(ms-python.python),需重装该扩展、选择含ipykernel的解释器并注册内核,同时清理输出、启用Pylance以支持补全调试。

VSCode 打开 .ipynb 文件后不显示运行按钮
根本原因是没装对扩展,或者装了但没启用 Python 支持。VSCode 本身不原生支持 Notebook,必须靠 Python 扩展(由 Microsoft 维护)提供内核管理和 UI 渲染。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 确认已安装
Python扩展(ID:ms-python.python),不是Jupyter扩展(ms-toolsai.jupyter)——后者已逐步被前者整合,单独装它反而可能冲突 - 关闭所有 VSCode 窗口,重装
Python扩展,并重启 - 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P),运行Python: Select Interpreter,选一个含ipykernel的 Python 环境(比如python -m pip install ipykernel装过) - 如果仍无按钮,检查状态栏右下角是否显示
Python 3.x.x和Kernel: idle—— 若是Kernel: not connected,点它手动选择内核
运行单元格时报错 ModuleNotFoundError: No module named 'IPython'
这不是缺 IPython,而是当前选中的 Python 解释器里没装 ipykernel,或者装了但没注册到 Jupyter 内核列表中。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 在终端中激活你 VSCode 选中的那个环境(比如用
conda activate myenv或source venv/bin/activate),再执行python -m pip install ipykernel - 然后注册内核:
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"(--name是 ID,--display-name是 VSCode 下拉里看到的名字) - 重启 VSCode,或重新触发
Python: Select Interpreter,再点右上角 kernel 选择器,应能看到刚注册的名称 - 注意:不要在 base 环境里反复注册多个同名 kernel,会导致下拉列表混乱甚至无法切换
代码补全、调试、断点在 Notebook 里不生效
VSCode 的 Python 补全和调试能力依赖语言服务器(Pylance)和调试器(debugpy),而它们默认只对 .py 文件深度集成;Notebook 需要额外激活路径映射和内核通信。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 确保
Pylance扩展已启用(它是Python扩展的推荐搭配,非强制但强烈建议) - 在 Notebook 单元格里写代码时,补全会延迟 1–2 秒——这是正常现象,因为要等内核返回类型信息;别狂按
Ctrl+Space - 设断点前,先确保单元格已执行过至少一次(否则调试器不知道变量上下文);断点仅对当前 cell 生效,跨 cell 不继承状态
- 调试启动后,变量面板显示的是 kernel 当前 namespace 的内容,不是整个 notebook 文件的静态 AST —— 所以删掉前面 cell 的变量定义,后面 cell 断点里依然能访问(只要没重启 kernel)
保存后 .ipynb 文件体积暴涨,Git 提交困难
VSCode 默认把每个 cell 的输出(图像、表格、打印日志)连同 metadata 一起存进 JSON,尤其绘图多时,单个 .ipynb 轻松破 10MB。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 提交前手动清空输出:菜单栏
Kernel → Clear All Outputs,或快捷键Ctrl+K O(Win/Linux)/Cmd+K O(macOS) - 配置自动清理:在用户设置(
settings.json)里加"jupyter.clearOutputOnSave": true - 避免在 notebook 里保存大图——用
plt.savefig("xxx.png")输出到文件,而不是靠plt.show()塞进 output 字段 - Git 用户可配
.gitattributes过滤 output 字段,但需团队统一工具链,个人项目直接清空更稳妥



















