Loading...

文章背景图

VS Code Jupyter 扩展部署指南:在编辑器中搭建 Notebook 环境详解

2026-10-21
0
- 字
- 分钟
|

一、项目简介:VS Code Jupyter 扩展

microsoft/vscode-jupyter 是微软为 VS Code 打造的官方 Jupyter Notebook 扩展(市场包名 ms-toolsai.jupyter)。它为当前 Jupyter Notebooks 所支持的各类语言内核提供基础的 Notebook 编辑能力,并允许把任意 Python 环境当作 Jupyter 内核来用。

这里有一个最关键的概念必须先讲清楚:Jupyter 扩展本身并不是一个 Jupyter 内核。你必须先准备一个安装了 Jupyter 包的 Python 环境(其他语言的内核则无需改动即可工作)。也就是说,扩展负责"编辑器与 UI",也就是编辑器与 UI,真正执行代码的是背后的内核(kernel)。

它与同属微软的 Python 扩展协同工作:Python 扩展负责解释器选择、调试、Lint,Jupyter 扩展负责 Notebook 编辑与内核连接。两者一起装,才能获得完整的 Python Notebook 体验。

Jupyter Notebook 的核心是一个 JSON 格式的 .ipynb 文件,里面按顺序存放一个个单元格:代码单元格(可被内核执行)与 Markdown 单元格(渲染成富文本说明)。这种"代码 + 说明 + 输出"混排的形式,非常适合数据探索、机器学习实验、教学讲义与可复现研究。VS Code 的 Jupyter 扩展让你不必打开浏览器,直接在熟悉的编辑器里完成这些工作流。

数据科学工作流通常是"边写说明边跑实验",Notebook 把 Markdown 说明、代码单元格、图表输出组织在同一个文档里,非常适合探索性分析、教学演示与结果分享。VS Code 的 Jupyter 扩展把这套体验原生整合进编辑器,而不是在浏览器里另开一个网页。

VS Code 中的 Jupyter Notebook 界面

安装该扩展后,它会自动连带安装几个增强体验的子扩展:Jupyter Keymap(提供与 Jupyter 一致的键位)、Jupyter Notebook Renderers(为 latex、plotly、vega 等 MIME 类型提供渲染器)、Jupyter Cell Tags 与 Jupyter Slide Show(给单元格打标签、支持演示幻灯片)。你也可以额外安装 Jupyter PowerToys 试用实验性功能(默认不装)。这些市场安装的扩展受 VS Code 市场条款约束,任一子扩展都可以按需禁用或卸载。扩展界面支持德语、英语、西班牙语、波斯语、法语、意大利语、日语、韩语、荷兰语、波兰语、葡萄牙语(巴西)、俄语、土耳其语、简体中文与繁体中文等多种语言。

二、环境准备与前置依赖

开始之前请准备好:

  • 安装 Visual Studio Code;
  • 安装 Anaconda 或 Miniconda,或任意一个已装好 Jupyter 包的 Python 环境;
  • 若不使用 Python,需在机器上装好对应语言的 Jupyter 内核(kernelspec);
  • 网络可访问 Marketplace(离线见后文 VSIX)。

验证 Python 环境里已装好 Jupyter:

python -m pip install jupyter
jupyter --version

用 conda 建环境的典型命令:

conda create -n mygpu python=3.11
conda activate mygpu
conda install jupyter ipykernel pandas matplotlib

用 venv 则:

python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install jupyter ipykernel pandas matplotlib

环境激活后,Jupyter 扩展通常能自动发现该环境作为可选内核;若没出现在列表里,执行 Notebook: Select Notebook Kernel 手动选择或指向该环境的 Python。

关于数据与隐私:该扩展会收集使用数据发送给微软以改进产品,遵循 VS Code 的 telemetry.telemetryLevel 设置,把它设为 off 即可关闭。

三、部署方式一:本地图形界面安装(推荐,Python)

官方推荐的五步流程:

第 1 步:安装 VS Code。
第 2 步:安装 Anaconda/Miniconda 或其他已装 Jupyter 包的 Python 环境。
第 3 步:安装 Jupyter 扩展与 Python 扩展。
第 4 步:打开命令面板(Ctrl+Shift+P),执行 Jupyter: Create New Jupyter Notebook 新建 Notebook。
第 5 步:点击 Notebook 右上角的内核选择器,或执行 Notebook: Select Notebook Kernel,选中你的 Python 内核,然后开始写代码。

新建 Jupyter Notebook 选择 Notebook 内核

用其他语言时:先装好对应语言的 Jupyter kernelspec,再只装 Jupyter 扩展,打开或新建 .ipynb 文件即可。例如 R 用户装好 IRkernel、Julia 用户装好 IJulia 后,内核就会出现在内核选择器里。

验证部署是否成功:新建一个 Notebook,第一个单元格输入 print("hello"),按 Shift+Enter 运行,下方输出 hello;再写 import pandas as pd 能正常导入,即说明内核与扩展都已就绪。

四、部署方式二:浏览器中使用 / Codespaces

Jupyter Notebook 也可以完全在浏览器里编辑,有两种方式:其一,Jupyter 扩展支持由 vscode.dev 提供的网页版界面(含在 GitHub 仓库页面按 . 进入的 github.dev);其二,可以在 GitHub Codespaces 上像本地一样安装 Jupyter 扩展,或者用 VS Code 设置同步自动把扩展装到 Codespaces。这种方式无需在本机装任何东西,适合云端写 Notebook。在 GitHub 仓库页面按 . 即可一键进入 github.dev,体验与桌面版接近,适合临时查看与编辑 Notebook。

两种云端方式的取舍:vscode.dev 适合轻量、临时在浏览器里改文件;Codespaces 适合需要完整、可复现开发环境的场景,它会给你一台预装了工具链的云主机,Notebook 就在那台机器上跑。两者都支持把本地 VS Code 设置与扩展同步过去,切换几乎无感。

离线/内网环境则下载 Jupyter 扩展的 VSIX,通过扩展面板 "Install from VSIX..." 安装,同时把 Jupyter Keymap、Renderers 等依赖扩展的 VSIX 一并装上。注意 VS Code 里远程(SSH/容器/Codespaces)扩展要分"本地"与"远程"两侧安装:Jupyter 扩展建议装在远程侧,这样内核能直接访问远程文件系统与已装包。

五、Notebook 编辑能力与常用命令

Jupyter 扩展基于 VS Code 内置的 Notebook 支持,因此天然继承了编辑器的很多基础能力:热退出(hot exit)、查找替换、代码折叠、大纲视图(目录)、面包屑、快速加载 .ipynb,以及一个对 Notebook 友好的 diff 工具,方便对比单元格、输出与元数据的差异。编辑单元格时还能用 VIM、括号着色、Linter 等编辑器扩展。Notebook 文件加载很快,任何 .ipynb 都会尽快渲染出来,与执行相关的操作在后台初始化。

常用命令(命令面板输入 Jupyter 或 Notebook 即可看到全部):

  • Jupyter: Create New Jupyter Notebook —— 新建一个 Notebook;
  • Notebook: Select Notebook Kernel —— 选择或切换内核;
  • Notebook: Change Cell Language —— 改变当前单元格的语言;
  • Jupyter: Export to HTML / Jupyter: Export to PDF —— 把 Notebook 导出为适合演示的 HTML 或 PDF。

配合 Jupyter Cell Tags 与 Jupyter Slide Show 扩展,你还可以给单元格打上标签、把整个 Notebook 转成幻灯片式演示,直接用于报告现场。导出的 HTML/PDF 会把代码、Markdown 与图表输出一并固化,方便分享给不跑代码的同事。

在单元格操作上,你可以新增代码单元格或 Markdown 单元格、上移下移单元格、把单元格设为 Markdown 写说明、运行单个单元格或从头运行全部、清空输出、折叠单元格输入与输出。配合变量浏览器可以查看当前内核里的变量,用数据查看器以表格形式检视 pandas DataFrame,还能直接在单元格里 %matplotlib inline 渲染 matplotlib 图表。Markdown 单元格支持完整的 Markdown 语法,包括标题、列表、表格与数学公式。

你还可以用扩展的 context key 自定义快捷键,例如只在非 Web 扩展环境下把 Ctrl+I 绑定为运行并调试单元格:

{
  "key": "ctrl+i",
  "command": "jupyter.runAndDebugCell",
  "when": "!jupyter.webExtension"
}

输出渲染方面,扩展自带一套常用渲染器,市场上也支持安装自定义渲染器,让 Plotly、Vega、LaTeX 等输出以更漂亮的形式呈现。此外,VS Code 的 Notebook 架构是可扩展的:其他扩展可以提供自己的语言或运行时,例如 .NET Interactive Notebooks 就是基于这套机制。你甚至可以按 VS Code 的 renderer API 编写自己的输出渲染器。

六、常见问题与 FAQ(含报错解决)

Q1:选好内核后运行单元格报 "No module named jupyter" 或找不到内核?
A:再次强调,扩展本身不是内核。请确认你选中的那个 Python 环境里已经 pip install jupyter ipykernel,并在内核选择器里选对了对应的环境。conda 用户建议在对应 conda 环境里 conda install ipykernel。

Q2:运行单元格没反应、卡在连接内核?
A:通常是内核环境有问题。打开输出面板看 Jupyter 与 Python 的日志;先在终端手动激活该环境、执行 jupyter kernelspec list 确认内核已注册。必要时重新选择内核或重启 VS Code。

Q3:Plotly / 表格 / LaTeX 输出显示不正常?
A:这是渲染器缺失。确认 Jupyter Notebook Renderers 扩展已安装;复杂可视化也可安装对应的自定义渲染器扩展。

Q4:想导出成 PDF 失败?
A:导出 PDF 依赖 Notebook 的导出工具链,需确保内核环境里装好了对应的导出依赖。可先尝试导出 HTML 验证内容无误,再排查 PDF 导出。

Q5:在 vscode.dev 网页版里为什么某些功能不可用?
A:网页版受限于浏览器沙箱与远程环境,部分需要本地 Python 内核的能力受限;完整功能请在桌面版或 Codespaces 中使用。

Q6:怎么关掉扩展的遥测?
A:扩展会收集使用数据发送给微软,遵循 VS Code 的 telemetry.telemetryLevel 设置,把它设为 off 即可关闭,详见微软隐私声明。

Q7:怎么把现有 .ipynb 文件用起来?
A:直接在 VS Code 文件资源管理器里双击 .ipynb 文件即可用 Notebook 编辑器打开;也可以通过命令面板 Jupyter: Create New Jupyter Notebook 新建空 Notebook,再从 Jupyter Web 端上传已有文件。

Q8:远程内核 / SSH 环境怎么连?
A:用 Remote-SSH 扩展连接到远程主机后,在远程那一侧安装 Jupyter 扩展与对应 Python 环境,Notebook 会在远程内核里执行,本地只负责显示。Codespaces 同理。

Q9:单元格运行报错与在终端里直接跑脚本结果不一致?
A:多半是内核用的环境与你终端里激活的不是同一个。Notebook 的状态绑定到所选内核,运行 import sys; print(sys.executable) 确认内核解释器路径,再用 Notebook: Select Notebook Kernel 切到正确环境。改完环境后建议重启内核(Restart Kernel)让状态干净。

Q10:如何彻底卸载扩展?
A:在扩展面板找到 Jupyter 扩展选 Uninstall,并连带卸载 Keymap、Renderers、Cell Tags、Slide Show 等子扩展;这不会删除你的 .ipynb 文件与 Python 环境。

Q11:GPU / 深度学习环境怎么配?
A:在对应的 conda 或 venv 环境里按框架官方文档装好 CUDA、PyTorch/TensorFlow,再把该环境选为内核即可。扩展本身不关心你跑的是 CPU 还是 GPU,只要内核环境里库装对了。

调试 Notebook 单元格可以用 jupyter.runAndDebugCell,在单元格里打断点后逐行执行,配合变量监视查看中间状态,比传统 print 调试高效。运行耗时较长的训练任务时,也可以把单元格拆成多步,利用 VS Code 的热退出在重启后恢复未保存的编辑。

最后再强调一次内核与环境的对应关系:Notebook 顶部选中的内核决定了用哪份 Python、哪套已装包;切换项目或切换数据科学栈时,务必重新选对内核并重启,否则容易出现"明明 pip 装了却 import 不到"的困惑。把环境管理与内核选择这两步做扎实,整个 Notebook 工作流就顺了。

七、总结与相关资源

VS Code Jupyter 扩展把"写文档 + 跑代码 + 看图表"的 Notebook 工作流完整搬进了编辑器:装好 Python 环境与 Jupyter 包,再装上 Jupyter 扩展与 Python 扩展,新建 Notebook、选对内核就能开始。它继承了 VS Code 的编辑体验,并支持浏览器与 Codespaces 云端使用。最容易踩的坑就是忘了在所选环境里装 Jupyter/ipykernel——记住"扩展不是内核"即可。装好后,日常开发无非就是"新建 Notebook、选对内核、Shift+Enter 跑单元格"这几个动作。

更多资料:官方 Jupyter Notebook 文档、仓库 Discussions 与 Wiki,提问题或报 Bug 请到 GitHub Issues。

评论交流

文章目录