如何从Python脚本管理多个IPython / Jupyter内核并与之通信?

时间:2015-04-29 16:49:57

标签: python ipython ipython-notebook jupyter

我想模仿笔记本服务器的功能,而是从逻辑中心(即我自己的Python脚本)协调不同IPython / Jupyter内核的创建/管理。

例如,我想:

  • 定义一个抽象命令,例如“add(x,y)”
  • 将抽象命令传递给多个内核,例如一个IPython内核和Scala内核
  • 让每个内核按照自己的意愿执行命令
  • 将结果从每个内核返回到逻辑的中心主体

有人能指出我如何以编程方式启动/停止/与多个IPython / Jupyter内核通信吗?

1 个答案:

答案 0 :(得分:5)

KernelManager处理启动和停止单个内核,并且有一个MultiKernelManager来协调多个内核。

然后,您可以使用.client()方法获取处理与内核通信的KernelClient实例:

有关如何与内核通信的详细信息,请参阅message spec docs。其中一些是由KernelClient抽象出来的,但你可能需要知道其中的一些。