Jupyter Notebook如何跨会话共享运行中的内核?
在Jupyter Notebook中实现跨会话共享内核的方法
Jupyter Notebook原生确实没有像Lab那样的“Use kernel from other session”可视化选项,但可以通过以下两种方式实现跨会话共享内核:
一、手动通过API/命令行绑定内核
1. 获取目标内核ID
首先需要拿到已运行内核的ID:
- 调用Jupyter API:发送
GET /api/kernels请求,返回的JSON数组中每个内核条目包含id字段,这就是要共享的内核ID。 - 命令行方式:在终端执行
jupyter kernel list,输出结果中类似kernel-abc123.json的文件名,最后一段abc123就是内核ID。
2. 创建绑定到目标内核的新会话
打开新Notebook时,不要用UI直接创建,而是通过API手动创建会话:
发送POST /api/sessions请求,请求体格式如下(替换占位内容):
{ "path": "你的新Notebook文件名.ipynb", "type": "notebook", "kernel": { "id": "目标内核ID" } }
执行后,打开指定路径的Notebook,就会连接到已有的共享内核。
如果已经误创建了绑定新内核的会话,可以先关闭该Notebook的内核(UI中选择“Kernel > Shut Down Kernel”),再用上述API重新绑定目标内核。
二、使用第三方扩展添加UI支持
有第三方扩展可以给Jupyter Notebook添加跨会话共享内核的可视化选项,比如jupyter-notebook-share-kernel(需通过pip安装后启用)。安装启用后,在新建Notebook或内核切换菜单中会出现选择已有内核的选项,操作逻辑和Jupyter Lab类似。
注意:共享内核时,多个Notebook会共享同一个命名空间,变量、全局状态会互相影响,使用时要注意避免冲突。
内容的提问来源于stack exchange,提问作者Hassan
相关产品推荐
相关产品推荐

