VS Code 运行 Jupyter Notebook 的核心是正确配置 Python 解释器、安装 ipykernel 并完成内核注册;三者缺一不可,且需确保解释器路径准确、ipykernel 用 pip 安装并加 --user 注册、避免远程模式误配及 conda/pip 混用。

VS Code 能跑 Jupyter Notebook,关键不在插件装没装全,而在于 Python 解释器选对了、ipykernel 装对了、内核注册对了——三者缺一不可。装了 Jupyter 插件却点不动运行按钮,90% 是这三步中某一步断在了环境里。
为什么选了 Python 解释器,右上角还是没内核可选
VS Code 不会自动扫描你系统里所有 Python 环境里的 jupyter 或 ipykernel,它只认你当前选中的那个解释器路径下是否装了 ipykernel 并完成注册。
- 先确认解释器路径:按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac),输入Python: Select Interpreter,选一个明确指向虚拟环境或 conda 环境的路径,比如~/venv/bin/python或~/miniconda3/envs/ds-env/bin/python - 打开终端(确保已激活该环境),执行:
python -m pip list | grep ipykernel(macOS/Linux)或python -m pip list | findstr ipykernel(Windows);没输出就立刻装:python -m pip install ipykernel - 注册内核时必须加
--user:运行python -m ipykernel install --user --name ds-env --display-name "Python 3 (ds-env)";--name不能含空格,--display-name才是下拉菜单里看到的名字 - 注册完重启 VS Code,或用命令面板执行
Developer: Reload Window,再打开.ipynb文件看右上角
内核显示 “Python 3 (unavailable)” 怎么办
这个提示不是说内核不存在,而是 VS Code 找到了注册信息,但启动失败——本质是通信链路断了。
- 检查是否误配了远程模式:打开工作区设置(
.vscode/settings.json),确认没有"jupyter.jupyterServerType": "remote"或填了"jupyter.remoteJupyterServerUri"这类字段,有就删掉 - 别混用
conda install和pip install:尤其在 pip 环境里用conda install ipykernel容易导致路径错乱,统一用python -m pip install ipykernel - Windows 用户注意权限:如果注册时没加
--user,内核可能被装到系统级目录(如C:\Program Files\...),VS Code 没权限读取;加了--user后,内核实际落在%USERPROFILE%\AppData\Roaming\jupyter\kernels\ - 检查扩展是否真正启用:在扩展面板搜
Jupyter,确认安装的是 ID 为ms-toolsai.jupyter的 Microsoft 官方版(图标是紫色火焰),且状态是“已启用”
交互式窗口(Interactive Window)比 .ipynb 更适合快速验证
很多用户执着于新建 .ipynb 文件,其实日常调试、试函数、看 DataFrame 结构,Jupyter: Create Interactive Window 更轻量、更稳定、不生成文件、支持变量查看器实时刷新。
- 快捷键:
Ctrl+Shift+P→ 输入并执行Jupyter: Create Interactive Window - 粘贴代码后,选中任意一段(比如
import pandas as pd; df = pd.DataFrame({'x': [1,2,3]})),按Shift+Enter即可执行并渲染结果 - 右键窗口空白处可导出为
.ipynb,也可直接保存历史会话为.py脚本 - 它不依赖内核选择器,只要解释器选对、
ipykernel装好就能跑,绕过了.ipynb文件加载阶段的多数报错路径
最常被忽略的其实是工作区粒度的配置:同一个 VS Code 实例打开多个文件夹时,每个文件夹的 Python: Select Interpreter 是独立的,改了 A 项目里的解释器,B 项目不会同步。切记每次进新项目都手动确认一遍右下角显示的 Python 版本和右上角内核名是否匹配。


















