VSCode打开.ipynb显示JSON源码,说明Jupyter扩展(ms-toolsai.jupyter)未加载,需同时启用Python扩展(ms-python.python),安装后重启VS Code;右上角无内核选项则因当前解释器环境未安装或未注册ipykernel,须在该环境终端执行python -m ipykernel install --user --name xxx;卡在“Connecting to kernel…”多因误启远程模式,应关闭Jupyter: Enable Remote并启用Local Kernel Specs Only;ModuleNotFoundError表明所选内核环境缺失对应包,需在该环境终端中pip/conda安装。

VSCode 打开 .ipynb 显示 JSON 源码,不是环境问题,是扩展没起作用
这说明 Jupyter 扩展压根没加载,和 Python 版本、虚拟环境、包安装都无关。VS Code 默认不识别 .ipynb 文件格式,必须靠扩展解析。
必须同时满足两个条件:
- 已安装 Microsoft 官方
Jupyter扩展(ID:ms-toolsai.jupyter,图标是紫色/蓝白火焰) - 已启用
Python扩展(ID:ms-python.python),新版 Jupyter 扩展依赖它提供解释器桥接
装完后务必重启 VS Code;如果按 Ctrl+Shift+P 输入 Jupyter: Select Interpreter 提示 “Command not found”,说明扩展静默失败,直接卸载重装。
右上角没内核可选,或显示 “Python 3 (unavailable)”,本质是 ipykernel 没注册进当前环境
VS Code 只认你当前选中的 Python 解释器里装的 ipykernel,不是系统全局或别的环境里装的。哪怕你 pip install jupyter 全局成功,只要目标环境没装 ipykernel,内核就不可用。
检查与修复步骤:
- 先确认解释器路径:左下角点击 Python 版本,或按
Ctrl+Shift+P运行Python: Select Interpreter,选中你要用的环境(如./venv/bin/python或C:\envs\ds\python.exe) - 在该环境终端中运行:
python -m pip list | grep ipykernel(macOS/Linux)或python -m pip list | findstr ipykernel(Windows);无输出就立刻执行python -m pip install ipykernel - 注册内核必须加
--user:运行python -m ipykernel install --user --name myenv --display-name "Python (myenv)";--name不能含空格或特殊字符,--display-name才是下拉菜单里看到的名字 - 注册后点右上角内核选择器旁的刷新按钮,或执行
Developer: Reload Window
选对内核却卡在 “Connecting to kernel…”,大概率误启了远程模式
VS Code 默认会尝试连接远程 Jupyter Server,哪怕你只想用本地内核。一旦工作区设置里有 "jupyter.jupyterServerType": "remote" 或 "jupyter.remoteJupyterServerUri",本地 kernel 就会被完全忽略。
强制走本地内核的配置动作:
- 打开设置(
Ctrl+,),搜jupyter: enable remote,关闭Jupyter: Enable Remote - 同时启用
Jupyter: Local Kernel Specs Only - 检查项目根目录下的
.vscode/settings.json,删掉所有带jupyter的远程相关字段 - 禁用所有非官方 Jupyter 类扩展(比如旧版
Jupyter Notebook Renderer),避免冲突
运行报 ModuleNotFoundError,说明 import 的包不在当前 kernel 环境里
VS Code 运行单元格时,用的是你选中的 kernel 对应的 Python 解释器 + site-packages,不是你终端当前激活的环境,也不是 VS Code 启动时所在的 shell 环境。
典型场景:
- 你在 conda base 环境终端里
pip install pandas,但 kernel 选的是./venv—— 单元格里import pandas就会报错 - 你用
conda install装包,但 kernel 是 pip 创建的 venv —— 包不会自动可见
解决方法只有一条:所有包必须在 kernel 所在环境的终端中安装。例如 kernel 路径是 ./venv/bin/python,那就先激活它(source ./venv/bin/activate 或 ./venv/Scripts/activate),再运行 pip install package_name。
别指望 VS Code 自动帮你切环境装包——它只负责调用,不负责管理依赖边界。


















