VSCode 集成 Jupyter Notebook 必须安装 Microsoft 官方 Jupyter 与 Python 扩展、配置 Python 解释器并显式注册 ipykernel 内核,缺一不可;推荐用 # %% 分隔的 .py 文件配合交互式窗口替代 .ipynb 以提升 Git 协作与稳定性。

VSCode 能完美集成 Jupyter Notebook,但必须手动配齐三样东西:Jupyter 扩展、Python 解释器、ipykernel 内核——缺一不可,否则会卡在“No kernel found”或单元格灰色不可执行。
安装 Jupyter 和 Python 扩展是前提,不是可选项
VSCode 本身不带 Notebook 支持,Jupyter 扩展(ID:ms-toolsai.jupyter)负责渲染 .ipynb 文件、运行单元格、显示变量;而 Python 扩展(通常随 Jupyter 扩展自动安装)负责解释器识别和虚拟环境管理。两者都必须由 Microsoft 官方发布,第三方同名扩展可能缺失内核注册或调试能力。
- 打开扩展面板(
Ctrl+Shift+X),搜Jupyter,认准作者是Microsoft,点安装 - 安装后务必重启 VSCode——不少用户跳过这步,导致内核选择器不出现
- 如果没自动装上
Python扩展,单独搜Python并安装(同样认准 Microsoft)
选解释器 ≠ 有内核:必须显式注册 ipykernel
即使你用 Python: Select Interpreter 指向了 ~/miniconda3/envs/ds/bin/python,VSCode 仍可能不显示该环境为可用内核——因为 jupyter 包只是提供 notebook 服务,真正被 Jupyter 扩展调用的是 ipykernel 实例。
- 先在终端激活目标环境:
conda activate ds或source venv/bin/activate - 运行:
python -m ipykernel install --user --name ds --display-name "Python (ds)" - 重启 VSCode,打开 .ipynb 文件,右上角点击
Select Kernel,应看到Python (ds) - 若仍不显示,运行
jupyter kernelspec list确认内核已注册;路径含空格或中文会导致注册失败
用交互式窗口替代 .ipynb 文件写探索代码
直接编辑 .ipynb 文件在 Git 协作中极易引发冲突(输出、metadata、cell id 全是二进制差异),而 # %% 分隔的 .py 文件 + 交互式窗口既能获得 Notebook 式执行体验,又保持纯文本可 diff。
- 新建
explore.py,写两段代码,中间加# %% - 光标放在任一段内,按
Shift+Enter,VSCode 会自动打开交互式窗口并执行 - 变量自动出现在
Variables面板,DataFrame 可双击展开表格预览 - 比 .ipynb 更稳:不会因意外保存输出污染文件,也避免 kernel 重启丢失上下文
运行单元格时常见失效场景与应对
单元格左侧行号旁没出现 ▶ 按钮、快捷键无响应、输出区空白——这些问题几乎都指向内核未就绪或状态异常。
-
Ctrl+Enter只运行当前单元格;Shift+Enter运行+跳转;Alt+Enter运行+下方插入新单元格——别记混 - 右下角显示
Python 3.x.x (idle)是正常;若显示disconnected或一直转圈,点它 →Restart Kernel - Markdown 单元格需双击进入编辑,再按
Ctrl+Enter渲染;单击只选中,不触发渲染 - 绘图不显示?确认已运行
%matplotlib inline(放在第一个代码单元格),且没被注释或拼错
最常被忽略的是:VSCode 的 Jupyter 支持依赖内核进程存活,而 conda/venv 环境一旦被删或重装 Python,ipykernel 注册信息不会自动更新——得重新 install --user,否则所有 Notebook 都变“只读”。










