内核列表为空或卡在“Connecting to kernel…”说明ipykernel未安装、未注册或版本冲突;需先激活目标环境并运行python -m ipykernel --version验证,无输出则pip install ipykernel,再用--user参数注册,降级至6.26.0版解决socket问题,并确保解释器路径与sys.executable一致。

内核列表为空或选了就卡在 “Connecting to kernel…”
这说明 VSCode 或 Jupyter 服务压根没识别到你环境里的 ipykernel,或者它虽然注册了但根本启动不起来。不是“没装 Jupyter”,而是 ipykernel 没在目标 Python 解释器里、没注册、或版本冲突。
先打开 VSCode 内置终端(Ctrl+`),确认已激活目标环境(比如 conda activate myenv 或 source venv/bin/activate),然后执行:
python -m ipykernel --version
有输出才说明模块可导入;没输出就立刻运行:
python -m pip install ipykernel
再注册内核(必须带 --user):
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"
-
--name是唯一标识,不能含空格,后续用于命令行管理 -
--display-name是你在 VSCode 下拉菜单里看到的名字 - 别用管理员权限启动 VSCode——会导致 socket 文件权限错乱
- 注册完必须重启 VSCode(不是重载窗口),否则内核列表不会刷新
Output 面板报 ModuleNotFoundError: No module named 'ipykernel'
这个错误很明确:VSCode 选中的 Python 解释器里,确实没有 ipykernel。注意,右上角显示的 “Python (myenv)” 只是内核注册名,不等于当前解释器路径。
在 Notebook 单元格里运行:
import sys; print(sys.executable)
对比你在终端里执行 which python(macOS/Linux)或 where python(Windows)的结果。如果不一致,说明 VSCode 没切对解释器。
正确做法是:
- 按
Ctrl+Shift+P→ 输入Python: Select Interpreter - 从列表里手动选中你环境下的
python可执行文件(路径要包含envs/myenv/bin/python或Scripts\python.exe) - 删掉设置里可能误配的
python.defaultInterpreterPath—— 它对 Notebook 内核无效,反而干扰
静默卡住或日志出现 zmq.error.ZMQError
进程启动了,但 ZeroMQ 通信失败。这是 6.27+ 版本在 Windows/WSL 上的高频问题,本质是 socket 绑定异常,和防火墙、权限、甚至 /etc/hosts 配置都有关。
优先降级 ipykernel:
python -m pip install "ipykernel==6.26.0"
同时检查:
- 临时关闭杀毒软件或企业防火墙——它们会静默拦截
tcp://127.0.0.1:XXXXX - Windows 用户若用 PowerShell 终端,确认
$env:PATH包含环境的Scripts目录;建议把 VSCode 终端默认设为 Command Prompt 或 Git Bash - WSL 用户检查
/etc/hosts是否有127.0.0.1 localhost,并在 VSCode 设置中启用jupyter.allowUnauthorizedRemoteConnection
连上了但 import 报模块不存在
内核名只是个标签,不保证包可用。你注册时用的是 A 环境,VSCode 实际加载的可能是 B 环境的解释器。
最可靠的验证方式只有一种:在 Notebook 里运行 import sys; print(sys.executable),输出路径必须和你在 Python: Select Interpreter 里选中的完全一致。
常见陷阱:
- conda 环境里混用
pip和conda install,导致依赖链断裂 - 重装 Python 或移动环境后,
kernel.json里仍保留旧的python路径(位置在~/.local/share/jupyter/kernels/myenv/kernel.json) - 没清理残留 runtime 文件:
~/.jupyter/runtime/(macOS/Linux)或%USERPROFILE%\.jupyter\runtime\(Windows)
复杂点在于:内核启动链条涉及解释器初始化、sys.path 构建、ipykernel 加载、ZeroMQ 套接字绑定四个环节,任一环出问题都表现为“连不上”,但修复手段完全不同。别跳步,老老实实看 Output → Jupyter 面板的第一行错误。


















