VSCode运行Jupyter Notebook必须同时满足三个条件:安装并启用Python扩展(ms-python.python)、安装并启用Jupyter扩展(ms-toolsai.jupyter)、当前选中的Python解释器环境中已安装ipykernel;缺一不可,否则Run Cell按钮灰显或报错command 'jupyter.runCell' not found。

VSCode 能直接运行 Jupyter Notebook,但必须满足三个硬性条件:已安装 Python 扩展、已安装 Jupyter 扩展、当前工作区有可用的 Python 解释器——缺一不可,否则 Run Cell 按钮灰掉或报错 command 'jupyter.runCell' not found。
确认 Jupyter 扩展和 Python 扩展都已启用
很多人只装了 Python 扩展,却没意识到 Jupyter 功能是独立扩展。VSCode 的 Jupyter 支持不是内置的,必须手动安装 Jupyter 扩展(Microsoft 官方出品,ID 是 ms-toolsai.jupyter)。安装后重启 VSCode,再检查左侧活动栏是否有 > 图标(Jupyter 视图);如果看不到,说明扩展未启用——点击扩展面板,搜索 jupyter,确保状态为「已启用」。
同时验证 Python 扩展(ms-python.python)是否启用,它负责提供解释器选择和内核管理。两个扩展缺一个,.ipynb 文件打开后都只会显示为纯文本或提示「No kernel available」。
选对 Python 解释器,且该环境里装了 ipykernel
VSCode 不会自动为你装 ipykernel,哪怕你本地有 python -m pip install jupyter。它只认你选中的解释器路径下是否能 import ipykernel。常见错误是:选了系统 Python,但没装 ipykernel;或者选了虚拟环境,却忘了激活后执行 python -m pip install ipykernel。
操作步骤:
- 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P),输入Python: Select Interpreter,从列表中选目标环境(如./venv/bin/python或C:\Users\X\anaconda3\python.exe) - 终端里执行
python -c "import ipykernel; print(ipykernel.__version__)",能输出版本号才算就绪 - 如果报错
ModuleNotFoundError: No module named 'ipykernel',就在当前解释器下运行python -m pip install ipykernel
运行单个 cell 时卡住或报 Kernel not responding
这通常不是代码问题,而是内核启动失败或端口冲突。VSCode 默认使用本地内核,但会尝试复用已有进程。若之前异常退出过 Jupyter 内核,残留进程可能占着端口,导致新 cell 启动卡死。
快速排查方法:
- 右上角 Kernel 状态显示「Busy」长时间不动 → 点击它,选
Restart Kernel - 仍不行?关闭所有 notebook 标签页,再重新打开 → 避免多个 notebook 共享同一内核引发竞争
- 检查终端输出:点右下角「Terminal」面板,看是否有类似
ERROR | Failed to start kernel的日志;如果有,大概率是ipykernel版本太老(≥6.25.0与 VSCode 1.85+ 兼容性更好) - 临时绕过:在命令面板运行
Jupyter: Create New Blank Notebook,测试是否干净环境可跑;能跑说明原文件含隐藏元数据或损坏 cell
导出 HTML 或 PDF 时中文乱码或公式不渲染
VSCode 自带的导出功能依赖 nbconvert,而 nbconvert 默认不带 LaTeX 支持。如果你 notebook 里有 $$E=mc^2$$ 或中文标题,导出 PDF 很可能空白或报错 nbconvert failed: PDF creating failed。
解决方式分两层:
- HTML 导出乱码 → 在 notebook 顶部 cell 加一行
%config InlineBackend.figure_format = 'retina'并确保文件编码是 UTF-8(VSCode 右下角确认显示UTF-8) - PDF 导出失败 → 必须系统级安装 LaTeX(如 TeX Live 或 MacTeX),然后终端执行
jupyter nbconvert --to pdf your_notebook.ipynb测试是否通;VSCode 的导出按钮本质调用的就是这个命令 - 更稳的替代:先用 VSCode 导出为 HTML,再用浏览器打印为 PDF —— 中文和公式都能保真
真正卡住人的从来不是「怎么点运行」,而是解释器路径、内核状态、扩展依赖这三者之间的隐式耦合。只要每次打开 notebook 前,花十秒确认左下角 Python 解释器路径正确、右上角 Kernel 显示「Ready」、Jupyter 扩展图标可见,后续几乎不会出问题。


















