内核列表有名字但点开卡住说明VSCode识别了kernel.json但进程通信失败,非未安装ipykernel;应验证ipykernel可导入、降级至6.26.0、关闭安全软件、禁用管理员模式启动,并确认sys.executable路径与所选解释器一致。

内核列表里有名字但点开就卡住
这说明 VSCode 已识别到 kernel.json 配置,但实际启动的进程无法与前端通信。不是没装 ipykernel,而是它启动了却“失联”了。
常见表现是 Output → Jupyter 面板里日志停在 Starting kernel 后无后续,或出现 zmq.error.ZMQError、Connection refused 等 socket 相关错误。
- 先在 VSCode 内置终端中激活目标环境(如
conda activate myenv或source venv/bin/activate),再运行python -m ipykernel --version—— 有输出才代表模块可导入 - 若版本 ≥6.27,直接降级:
pip install "ipykernel==6.26.0"(6.27+ 在 Windows/WSL 下 socket 绑定失败率极高) - 临时关闭杀毒软件或企业防火墙,它们常静默拦截
tcp://127.0.0.1:XXXXX这类本地回环连接 - 别用管理员权限启动 VSCode:管理员模式下,内核进程无法写入
~/.local/share/jupyter/runtime/(Linux/macOS)或%USERPROFILE%\AppData\Roaming\jupyter\runtime\(Windows)中的 socket 文件
右上角显示 Python (myenv) 但执行 import 就报错
内核名只是个标签,VSCode 实际加载的解释器和你注册时用的未必是同一个。尤其在 conda 多环境 + 手动改过配置的情况下,极易错配。
最可靠验证方式:在 Notebook 单元格中运行 import sys; print(sys.executable),输出路径必须和你在命令面板(Ctrl+Shift+P)→ Python: Select Interpreter 中选中的路径完全一致。
- 如果输出是系统 Python 路径(如
/usr/bin/python3或C:\Python39\python.exe),说明 VSCode 根本没切到你的环境——重启 VSCode(不是重载窗口)再试 -
python.defaultInterpreterPath这个设置对 Notebook 内核无效,反而容易干扰,建议从设置中删掉 - 注册内核时务必用
--user参数:python -m ipykernel install --user --name myenv --display-name "Python (myenv)",否则可能装到系统级路径,VSCode 无权读取
内核列表为空或只显示 Python 3 (system)
VSCode 的 Python 扩展不会自动扫描所有 conda env 或 venv 目录,它只认明确指定的 python 可执行文件路径。
典型原因是目标环境里没装 ipykernel,或者装了但没注册进 Jupyter 生态。
- 先确认目标环境已激活,并运行
pip list | grep ipykernel(Linux/macOS)或pip list | findstr ipykernel(Windows)—— 必须看到ipykernel条目 - 手动注册:
python -m ipykernel install --user --name myenv --display-name "Python (myenv)",其中--name是唯一标识(不能含空格),--display-name是下拉菜单中显示的名字 - 注册后必须重启 VSCode(不是重载窗口),否则内核列表不会刷新
- 检查
jupyter kernelspec list输出,确认myenv出现在用户级路径下(如~/Library/Jupyter/kernels/myenv或%USERPROFILE%\AppData\Roaming\jupyter\kernels\myenv)
Output 面板报 ModuleNotFoundError: No module named 'ipykernel'
这个报错意味着 VSCode 已成功调起 Python 解释器进程,但该解释器里根本找不到 ipykernel 模块——不是通信问题,是环境缺失。
注意:装 jupyter 不等于装了 ipykernel;pip install jupyter 只保证 notebook server 可运行,不安装 kernel。
- 在 VSCode 内置终端中,确保已激活目标环境,然后运行:
python -m pip install ipykernel - 不要只依赖
pip list | grep jupyter,它可能显示jupyter-core或jupyter-client,但这些不能替代ipykernel - 如果用 conda,也需显式安装:
conda install ipykernel,conda 的jupytermeta-package 并不总是包含最新版ipykernel - 装完后仍报错?检查是否误用了全局 pip:运行
which python和python -m pip show ipykernel,确认路径匹配


















