VS Code 通过 Python 扩展支持 Jupyter Notebook,需安装 jupyter 和 ipykernel 并正确选择解释器;首次启动可能卡顿,内核断连需手动重启;变量面板对复杂对象支持有限,建议用 print/display 或调试模式查看。

VS Code 本身不内置 Jupyter 内核,但通过官方 Python 扩展 + jupyter 包即可完整支持 Notebook 编辑、执行、变量检查和内核切换——前提是 Python 环境里装了 jupyter,且 VS Code 能正确识别它。
确认 Python 扩展和 Jupyter 内核已就位
VS Code 的 Jupyter 功能由 Python 扩展(ms-python.python) 提供,不是单独的 “Jupyter 扩展”。安装后,它会自动尝试查找系统中可用的 Jupyter 内核。
- 在终端运行
jupyter --version,确保输出类似5.7.0或更高版本;若报错,先用pip install jupyter安装 - 如果使用 conda 环境,建议用
conda install jupyter,避免 pip/conda 混用导致内核注册失败 - VS Code 中按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Jupyter: Select Interpreter to Start Jupyter Server,选中你希望运行 Notebook 的 Python 解释器(比如./venv/bin/python或anaconda3/envs/myenv/bin/python) - 选完后,VS Code 底部状态栏会显示内核状态(如
Python 3.11.5 (venv)),表示已连接成功
打开或新建 .ipynb 文件时常见卡顿/无响应
这不是 VS Code 崩溃,而是内核启动或依赖加载慢。尤其首次打开、或使用未预装 ipykernel 的环境时,VS Code 会自动运行 python -m pip install ipykernel,这个过程可能静默卡住几秒到几十秒。
- 若右上角持续显示“Connecting to kernel…”超过 30 秒,打开 VS Code 的输出面板(
Ctrl+Shift+U),选择Jupyter日志,看是否有Failed to start the kernel或ModuleNotFoundError: No module named 'ipykernel' - 手动修复:在对应 Python 环境下运行
python -m pip install ipykernel,再重启 VS Code 窗口(不是重载窗口) - 避免反复安装:如果多个项目共用同一虚拟环境,只装一次
ipykernel即可;不同环境需各自安装 - 禁用自动安装(进阶):在 VS Code 设置中搜索
jupyter.askForKernelRestart,关闭它可减少干扰,但需手动管理内核
代码块执行失败但没报错?检查内核是否意外断开
VS Code 的 Notebook 界面不会像网页版 Jupyter 那样明显提示 “Kernel died”,而可能只是光标卡住、输出空白、或变量面板不更新——本质是内核进程已退出,但 UI 没刷新状态。
立即学习“Python免费学习笔记(深入)”;
- 点击右上角内核名称(如
Python 3.11.5),弹出菜单中若出现Restart Kernel或Interrupt Kernel,说明当前内核仍活跃;若只有Select Kernel,大概率已断连 - 执行任意 cell 前,先点内核名 →
Restart Kernel and Run All Cells,这是最稳妥的清理方式 - 注意:中断执行(
Interrupt Kernel)不会清除变量,而重启会清空所有变量和导入状态 - 频繁断连?检查是否在 cell 中运行了阻塞操作(如
input()、无限循环、或调用了需要 GUI 的库如matplotlib.pyplot.show())
为什么变量面板看不到自定义类实例或 numpy 数组?
VS Code 的变量查看器(Variables panel)对复杂对象的支持有限,默认只展开基础类型(int/str/list/dict)和 pandas DataFrame。numpy 数组、PyTorch 张量、自定义类等,通常只显示类型和内存地址。
- 想看数组内容:在 cell 中显式调用
print(arr)或display(arr)(需 from IPython.display import display) - 启用高级数据查看:在设置中搜索
jupyter.experimentalVariableView,勾选后变量面板会尝试渲染更多结构化数据(但仍有兼容性限制) - 调试模式下(F5 启动调试),变量面板能力更强,但仅适用于单个 .py 文件,不适用于 .ipynb 的交互执行
- 真正需要深度 inspect 对象时,还是推荐在 cell 中用
vars(obj)、dir(obj)或obj.__dict__手动探查
最常被忽略的一点:VS Code 的 Notebook 支持依赖于当前打开文件夹的 Python 解释器设置。如果只是单独打开一个 .ipynb 文件(没打开文件夹),它默认使用系统 Python,很可能找不到你项目里 requirements.txt 安装的包。务必先用 File > Open Folder 打开项目根目录,再选择解释器。










