VSCode需通过官方扩展与Python环境协同支持Jupyter,内核未注册或未正确选择会导致绘图失败;应运行jupyter kernelspec list确认内核,用python -m ipykernel install注册,并在VSCode中手动选择;%matplotlib inline启用内联绘图,禁用widget/qt后端;Plotly需设置pio.renderers.default = 'vscode',Altair需安装对应labextension;遇问题优先重启内核或重载窗口。

VSCode 本身不内置 Jupyter 支持,必须通过官方扩展和 Python 环境协同工作;直接装个插件点开 .ipynb 文件却画不出图,大概率是内核没连上或 matplotlib 后端没配对。
确认已安装 Python 和 Jupyter 内核
VSCode 的 Jupyter 功能依赖本地 Python 环境中的 jupyter 包,不是靠插件“自带”的。如果你用 pip install jupyter 装过,但 VSCode 仍提示“找不到可用内核”,说明内核注册失败或环境未激活。
- 在终端运行
jupyter kernelspec list,确认输出里有类似python3 /path/to/share/jupyter/kernels/python3 - 若没有,先激活目标 Python 环境(如
conda activate myenv或source venv/bin/activate),再运行python -m ipykernel install --user --name myenv --display-name "Python (myenv)" - VSCode 中打开 Notebook 后,右上角 kernel 选择器必须手动选中你刚注册的名称,不能只依赖默认值
启用 inline 绘图并避免空白图
Matplotlib 默认后端在 VSCode Notebook 里可能不渲染,尤其 macOS 或远程 SSH 连接时。不显式配置,plt.show() 可能无效,plt.plot() 后什么也不显示。
- 在 notebook 第一个 cell 执行:
%matplotlib inline
- 如果用了 seaborn,建议紧接着加
import matplotlib.pyplot as plt; plt.rcParams['figure.figsize'] = (8, 5)
避免图太小 - 禁用交互式后端:不要写
%matplotlib widget或%matplotlib qt,它们在 VSCode 中支持不稳定,容易报错ModuleNotFoundError: No module named 'ipywidgets'
处理常见错误:No module named 'plotly' 或 Figure not shown
Plotly、Altair 等库需要额外设置才能在 VSCode Notebook 中正常渲染。不是 pip 安装完就能用——它们依赖前端扩展或特定渲染协议。
- Plotly:必须安装
plotly[orca](用于静态导出)+ VSCode 插件 Plotly Viewer(非必需但推荐),并在代码开头加import plotly.io as pio; pio.renderers.default = 'vscode'
- Altair:确保已运行
jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyterlab-plotly——注意这是jupyter lab命令,VSCode 使用的是 Lab 协议兼容层,不装扩展会导致ValueError: Renderer 'jupyterlab' is not registered - 遇到
Figure not shown,优先检查是否漏了plt.show()(虽%matplotlib inline下可省略,但某些版本仍需)或 cell 没执行(VSCode 不自动运行所有 cell)
最常被忽略的一点:VSCode 的 Jupyter 支持实际走的是 Jupyter Server 协议,不是纯前端渲染。重启内核、清空 output、重载窗口(Ctrl+Shift+P → Developer: Reload Window)比反复改代码更有效。特别是切换 conda 环境后,旧 kernel 进程可能还在跑,导致包版本错乱。










