学习笔记:Jupyter和IPython

IPython Kernel

说起Jupyter,就要先说一下IPython Kernel。IPython Kernel是一个独立进程,用来执行用户的python代码,kernel进程和notebook或者Qt console这类的前端通信。一个kernel进程可以有不止一个前端,因为共享了kernel,所有的前端可以共享python变量。

IPython Kernel由两部分组成,一部分是Python的执行核心,用来解析执行python代码,另一部分是与前端通过Json格式的消息队列通信的支持。


IPython Kernel的设计初衷是为了同时支持多个前端,但这种设计使得为前端添加其他语言的kernel非常容易,也就是使同样的前端支持多种语言。最简单的方式,是复用IPython Kernel的消息机制,只需要重写语言执行核心即可 (Wrapper Kernel)。另外一种方式是为新语言重写一个新的kerne (Native Kernel)

Notebooks

Notebooks 负责运行代码,存储代码和输出,它可以把代码和输出等所有信息存储为一个文件,也可以加载之前存储的文件。这个文件就是notebook,扩展名.ipynb


IPython

Jupyter 项目的前身其实就是IPython Notebook。它是由IPython项目中编程语言无关的部分,如notebook format,message protocol, notebook web application等单独分化而来。现在IPython主要作为Python Shell存在,它为Jupyter提供了python kernel。

参考资料

https://jupyter.readthedocs.io/en/latest/architecture/how_jupyter_ipython_work.html

https://jupyter.readthedocs.io/en/latest/ipython/content-ipython.html

你可能感兴趣的:(学习笔记:Jupyter和IPython)