VS Code 能运行 Jupyter Notebook 的前提是同时满足装对扩展、选对解释器、注册对 ipykernel 内核;仅选解释器不等于内核可用,必须在目标环境执行 python -m ipykernel install --user 注册,否则显示“no kernel”或单元格不可执行。

VSCode 能直接运行 Jupyter Notebook,但必须同时满足三个条件:装对扩展、选对解释器、注册对 ipykernel 内核——缺一不可,否则会卡在 “No kernel found” 或单元格灰色不可执行。
为什么选了 Python 解释器,却 still no kernel?
VSCode 的 “Python: Select Interpreter” 只告诉编辑器用哪个 python 命令,不等于它能被 Jupyter 调用。Jupyter 扩展实际依赖的是 ipykernel 实例,而这个实例需要显式安装并注册。
- 先在终端激活目标环境:
conda activate ds或source venv/bin/activate - 再运行:
python -m ipykernel install --user --name ds --display-name "Python (ds)" - 注册后检查是否生效:
jupyter kernelspec list,输出里应含ds且路径无空格或中文 - 重启 VSCode(不是重载窗口),打开
.ipynb文件,右上角点 kernel 选择器,应看到Python (ds)
运行单元格报 ModuleNotFoundError 怎么办?
这是最典型的“环境错位”:VSCode 界面显示选中了 ./venv/bin/python,但 kernel 启动时加载的却是系统 Python 的 site-packages。
- 在 notebook 里先运行:
import sys; print(sys.executable),对比输出路径和你选的 interpreter 是否一致 - 如果不一致,说明 kernel 绑定错了——删掉对应内核目录:
~/.local/share/jupyter/kernels/ds(Linux/macOS)或%USERPROFILE%\AppData\Roaming\jupyter\kernels\ds(Windows) - 重新在该环境下运行
python -m ipykernel install,不要跨环境混用pip和conda安装ipykernel - 避免全局注册:永远在目标虚拟环境中执行注册命令,而不是在 base 环境里装完再切过去
用 # %% 分隔的 .py 文件替代 .ipynb 更稳
直接编辑 .ipynb 在 Git 协作中极易冲突:输出、metadata、cell id 全是 JSON 差异,肉眼无法 review。而 # %% + .py 是纯文本,diff 清晰、合并安全。
- 新建
explore.py,写两段代码,中间加# %% - 光标放在任一段内,按
Shift+Enter,VSCode 自动打开交互式窗口执行 - 变量自动进 Variables 面板,
DataFrame双击可展开表格预览 - 不会因意外保存输出污染文件,也避免 kernel 重启丢失上下文
真正容易被忽略的是:VSCode 不会自动帮你把已装 jupyter 的环境“变成可用内核”,必须手动 python -m ipykernel install;而且每次换环境、重装 Python、或升级 conda,都得重新注册一次——这不是一次性配置,而是环境生命周期里的常规操作。


















