如何通过Python脚本管理和与多个IPython / Jupyter内核通信?
问题内容:
我想模仿笔记本服务器的功能,而是从中央逻辑主体(即我自己的Python脚本)协调不同IPython / Jupyter内核的创建/管理。
例如,我要:
- 定义一个抽象命令,例如“ add(x,y)”
- 将抽象命令传达给多个内核,例如IPython内核和Scala内核
- 让每个内核按自己的意愿执行命令
- 将结果从每个内核返回到逻辑中心
谁能指出我如何以编程方式启动/停止/与多个IPython / Jupyter内核通信的方向?
问题答案:
一个KernelManager处理启动和停止单个内核,并且有一个MultiKernelManager来协调多个内核。
- http://ipython.org/ipython-doc/3/api/generated/IPython.kernel.manager.html
- http://ipython.org/ipython-doc/3/api/generated/IPython.kernel.multikernelmanager.html
然后,您可以使用该.client()
方法来获取一个KernelClient实例,该实例处理与内核的通信:
有关如何与内核进行通信的详细信息,请参阅消息规范文档。其中一些是由KernelClient提取的,但是您可能需要了解其中的一些内容。