VS Code 中 Jupyter Notebook 跑不起来,90% 是因内核未注册或未连上:需先选对 Python 解释器,再在该环境安装 ipykernel 并执行 python -m ipykernel install --user --name myenv --display-name "Python (myenv)",最后重启 VS Code 窗口。

VS Code 里跑不起来 Jupyter Notebook,90% 的情况不是插件没装、也不是没装 Jupyter,而是内核(kernel)根本没注册进当前 Python 环境,或者 VS Code 没连上它。
内核没注册或显示 “Python 3 (unavailable)”
这是最典型的卡点:右上角内核选择器里有名字,但后面标着 (unavailable),点运行没反应、输出区空白、状态栏不显示 Python 版本。根本原因是你选的 Python 解释器里压根没装 ipykernel,或者装了但没注册成 Jupyter 可识别的 kernel。
- 先确认你当前用的是哪个解释器:按
Ctrl+Shift+P→ 输入并执行Python: Select Interpreter,从列表里挑出目标环境(比如./venv/bin/python或anaconda3/envs/ds/python.exe) - 打开终端(确保已激活该环境),运行:
python -m pip list | grep ipykernel(macOS/Linux)或python -m pip list | findstr ipykernel(Windows)——没输出就立刻执行:python -m pip install ipykernel - 再注册内核:
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"(--name不能含空格,--display-name才是下拉菜单里看到的名字) - 注册完必须重启 VS Code 窗口(不是“重载窗口”),否则内核不会出现在下拉列表中
右上角内核选择器里根本找不到你的环境
不是 VS Code 没扫描到,而是它只读取固定路径下的 kernel 定义:~/.local/share/jupyter/kernels/(Linux/macOS)或 %USERPROFILE%\AppData\Roaming\jupyter\kernels\(Windows)。如果注册时漏了 --user,kernel 可能被装到系统级位置,VS Code 无权读取。
- 检查是否真注册成功:在终端运行
jupyter kernelspec list,输出里要有类似myenv /home/xxx/.local/share/jupyter/kernels/myenv的条目 - 如果路径里有中文或空格(比如环境名叫
data science),VS Code 很可能解析失败——重命名环境,再重新注册 - 别依赖
conda install ipykernel:某些 conda 镜像源会装旧版或缺依赖;统一用python -m pip install ipykernel更稳 - 确认 Jupyter 扩展(
ms-toolsai.jupyter)和 Python 扩展(ms-python.python)都已启用——缺一个,Notebook 就无法绑定内核
Shift+Enter 没反应,或报 ModuleNotFoundError
这不是快捷键坏了,是 Notebook 当前绑定的 kernel 和你预期的环境错位了。VS Code 左上角显示的内核名称(比如 Python 3.11.5 ('base': conda))才是真实执行环境,跟当前打开的 .py 文件、文件夹、甚至工作区设置都无关。
- 点击右上角内核名称,手动从下拉列表中选中你真正想用的那个(带
--user或具体 env 名的) - 如果目标环境没出现,说明它没注册——进该环境终端,重复
python -m ipykernel install --user --name ... - 别指望 VS Code 自动把项目根目录下的
.venv映射为 kernel:必须显式注册,且--name最好用项目名(避免多个.venv冲突) - 快捷键别记混:
Shift+Enter是运行并跳转,Ctrl+Enter是只运行当前单元格——按错容易误判为“没反应”
禁用远程连接,避免本地 notebook 却连远端服务
如果你的状态栏一直显示 Connecting to kernel…,或弹出 Select Jupyter server 对话框,说明 VS Code 正在尝试走远程流程,而不是用你本地注册的 kernel。
- 打开设置(
Ctrl+,),搜索jupyter: enable remote,关闭Jupyter: Enable Remote - 同时开启
Jupyter: Local Kernel Specs Only(推荐勾选) - 检查工作区设置里有没有误配:
jupyter.jupyterServerType设成了remote,或填了remoteJupyterServerUri——这些会强制忽略本地 kernel - 运行单元格前,务必确认底部状态栏显示的是类似
Python 3.11.5 (myenv)的有效内核标识,而不是空白或“Connecting…”
最容易被忽略的一点:VS Code 的 Notebook 内核选择和左下角显示的 Python 解释器是两套独立机制。前者决定代码运行时的包环境,后者影响补全、类型提示和调试器行为。它们可以不同,但若不一致,你会反复遇到 import 提示错误却实际能运行、或断点打不进去的问题。


















