为什么我的Jupyter内核在VS Code Jupyter扩展中不显示?
可能的原因
- VS Code Jupyter扩展的内核搜索路径与系统jupyter的内核路径不匹配:
jupyter kernelspec list返回的内核默认存放在当前用户的jupyter配置目录下(Linux/macOS为~/.jupyter/kernels,Windows为%APPDATA%\jupyter\kernels),但VS Code默认仅扫描关联的Python环境目录、当前工作区目录下的内核路径,不会主动拉取全局用户的内核配置。 - 内核配置文件不兼容:sparkmagic生成的
kernel.json中包含Livy服务关联的自定义参数,旧版本Jupyter扩展解析内核时会过滤不符合预设格式的条目,导致内核无法被识别。 - 扩展内核缓存未更新:安装sparkmagic内核时如果VS Code已处于运行状态,Jupyter扩展的本地内核列表缓存不会自动刷新,新内核不会显示。
- 目录读取权限不足:内核存放目录的权限配置不允许VS Code当前运行用户读取,导致内核加载失败。
修复方案
- 刷新内核缓存:完全关闭VS Code后重启,打开Jupyter笔记本后点击内核选择下拉框,触发内核列表重新扫描。
- 手动添加内核搜索路径:打开VS Code设置,搜索
Jupyter: Kernel Search Paths,将jupyter kernelspec list输出的sparkmagic内核所在的父目录路径添加到配置项中,重启VS Code即可。 - 校验内核配置:进入sparkmagic内核的存放目录,打开
kernel.json文件,确认argv、display_name、language字段没有语法错误,路径参数指向正确的执行文件。 - 复制内核到环境目录:执行
python -m site --user-site找到VS Code当前关联的Python环境的用户库路径,进入上层目录找到kernels文件夹,将sparkmagic的内核目录整体复制到该路径下,重启VS Code即可识别。 - 升级Jupyter扩展:将VS Code的Jupyter扩展升级到最新版本,解决旧版本对自定义内核的兼容问题。
- 调整目录权限:确认内核存放目录对VS Code运行用户开放可读权限,Linux/macOS可执行
chmod -R 755 内核目录路径调整,Windows可右键文件夹在属性的安全选项中修改权限。
内容的提问来源于stack exchange,提问作者Gary Liu
相关产品推荐
相关产品推荐

