vscode中jupyter notebook跑不起来,90%以上因内核未注册或未连上:需先选对python解释器,再在该环境安装ipykernel并执行python -m ipykernel install --user --name myproject --display-name "python (myproject)",最后重启vs code窗口。

VSCode 跑不起来 Jupyter Notebook,几乎从来不是因为没装插件,而是内核(kernel)根本没注册进当前 Python 环境,或者 VS Code 没连上它——选错解释器、漏装 ipykernel、注册命令缺 --user、路径含空格,四者占失败原因的 90% 以上。
Python 解释器选错,Notebook 就压根启动不了
VS Code 不会跨环境找 jupyter 或 ipykernel,它只认你当前选中的解释器里装了什么。哪怕你在系统全局 pip install jupyter 了,只要解释器选的是 ./venv/bin/python,而这个 venv 里没装 ipykernel,右上角就只会显示 “Python 3 (unavailable)” 或干脆空白。
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac),输入并执行Python: Select Interpreter - 从列表中挑出目标环境路径,比如
./venv/bin/python(Linux/macOS)或.\.venv\Scripts\python.exe(Windows) - 如果列表里没看到你的环境,说明它没被 VS Code 扫描到——别猜,直接在终端激活该环境后运行
python -m pip list | grep ipykernel(macOS/Linux)或python -m pip list | findstr ipykernel(Windows)确认是否已装
ipykernel 没装或注册失败,内核就“不可用”
只装 jupyter 不够,ipykernel 才是让 Python 环境变成可通信内核的关键。注册命令必须在目标环境中执行,且 --user 参数不能省,否则 kernel 可能写入系统级目录,VS Code 无权读取。
- 在已激活的目标环境终端中运行:
python -m pip install ipykernel(别用conda install ipykernel混着来,尤其在 pip 环境里) - 再运行:
python -m ipykernel install --user --name myproject --display-name "Python (myproject)"(--name不能含空格或中文,--display-name才是下拉菜单里看到的名字) - 验证是否注册成功:
jupyter kernelspec list输出里应有类似myproject /home/xxx/.local/share/jupyter/kernels/myproject的条目 - 注册完必须重启 VS Code 窗口(不是“重载窗口”),否则新内核不会出现在下拉列表中
右上角内核选择器里找不到名字,或点了没反应
这通常不是 VS Code 没扫描到,而是它只读取固定路径下的 kernel 定义:~/.local/share/jupyter/kernels/(Linux/macOS)或 %USERPROFILE%\AppData\Roaming\jupyter\kernels\(Windows)。如果注册时漏了 --user,或 --name 含空格,VS Code 就解析失败。
- 检查工作区设置:
settings.json里有没有误配"jupyter.jupyterServerType": "remote"或填了remoteJupyterServerUri——这会让 VS Code 强制走远程模式,本地 kernel 直接被忽略 - 关闭
Jupyter: Enable Remote,启用Jupyter: Local Kernel Specs Only(在设置里搜这两项) - 如果之前注册过同名 kernel,先删掉:
jupyter kernelspec remove myproject,再重新安装 - 确保
ms-toolsai.jupyter和ms-python.python两个扩展都已启用——缺一个,Notebook 就无法绑定内核
Shift+Enter 没反应,或报 ModuleNotFoundError
这不是快捷键坏了,而是当前单元格实际运行的 Python 解释器和你预期的不一致。VS Code 左上角显示的内核名(如 Python 3.11.5 ('myproject': venv))才是真实执行环境。
- 运行
import sys; print(sys.executable),确认输出路径是否指向你选中的解释器(比如./venv/bin/python) - 如果不一致,说明 kernel 绑定错位:可能你在 base 环境注册了内核,却想在子环境里用;或者
kernel.json里的argv[0]指向了错误的 python 可执行文件 - 手动检查
~/.local/share/jupyter/kernels/myproject/kernel.json(Linux/macOS)或对应 Windows 路径下的文件,确认argv第一项是正确路径 - 避免全局安装
ipykernel:始终在目标环境中运行注册命令,而不是在 base 环境里装完再切到子环境
真正卡住人的,往往不是“怎么打开 notebook”,而是 kernel 启动时 sys.executable 和你选中的解释器路径对不上——这个细节极容易被忽略,但它是绝大多数 ModuleNotFoundError 和“点了没反应”的根源。











