如何在VS Code中重新连接已有的远程Jupyter Notebook会话?
VS Code重连远程已有Jupyter会话操作方案
你遇到的重连选项消失问题,是v2022.5系列Jupyter扩展的默认配置调整+已知bug导致,浏览器端会话404是SSH隧道/Jupyter服务访问地址不匹配导致,按以下优先级操作即可解决:
方法1:恢复内核选择器的现有会话入口
- 在VS Code远程SSH窗口下,按
Ctrl+Shift+P(macOS端按Cmd+Shift+P)调出命令面板,执行Preferences: Open Remote Settings (JSON),注意一定要打开远程服务器对应的配置,不要改本地配置 - 在配置JSON中添加如下配置项:
"jupyter.kernelPickerType": "All", "jupyter.showKernelManagementOnKernelPicker": true
- 保存配置后,在命令面板执行
Developer: Reload Window重载窗口 - 重载完成后再次打开笔记本内核切换菜单,依次选择
Select Another Kernel->Existing Jupyter Kernel,就能看到所有远程服务器上正在运行的未关闭会话,选中对应会话即可完成重连,所有已保存的变量、运行状态都会保留。
方法2:通过内核运行时文件直连(方法1失效时用)
如果改完配置还是看不到目标会话,可以直接通过内核生成的连接文件直连,这个方法不受扩展UI bug影响:
- SSH登录到运行Jupyter内核的远程服务器,执行命令
jupyter runtime list,终端会输出所有当前存活内核对应的连接文件路径,文件默认存放在~/.local/share/jupyter/runtime/目录下,文件名格式类似kernel-xxxxxx.json - 回到VS Code的内核切换菜单,依次选择
Select Another Kernel->Existing Kernel->Browse for kernel connection file - 在弹出的远程文件选择器中,找到上一步查到的对应内核的json文件,选中即可直接连接到目标运行中会话。
浏览器端404问题修复
浏览器端Running标签可见会话但点击返回404,是本地访问Jupyter服务的地址、端口或token失效导致:
- 在远程服务器上执行
jupyter notebook list,终端会输出当前正在运行的Jupyter服务的完整访问地址(带一次性token) - 复制该完整地址粘贴到本地浏览器访问,不要使用之前保存的旧书签或历史地址,即可正常打开、管理所有运行中的会话。
版本兼容兜底方案
你当前使用的v2022.5.1001601848是Jupyter扩展的迭代预览版,存在多个内核选择器相关的已知bug,如果上述方法操作后仍有问题,可以在VS Code扩展面板找到Jupyter扩展,点击扩展卡片右下角的下拉箭头,选择Install Another Version...,回退到v2022.3.1000901801稳定版,回退后重载窗口即可默认显示所有现有会话入口,无需额外修改配置。
内容的提问来源于stack exchange,提问作者haoyu
相关产品推荐
相关产品推荐

