IPython 中的扩展与内核

Extensions Vs Kernels in IPython

在 Jupyter 中,内核为我们要在笔记本中使用的不同语言提供支持(例如 IRkernel)。这与使用其他语言编写魔法(%load_ext rmagic 并在整个代码中使用 %%R)有何不同?

不同之处在于内核是本机的,即内核是使用允许远程执行和代码完成的协议的进程。因此,您可以因此获得一个纯粹在 R 中的 R 内核和一个纯粹在 Julia 中的 julia 内核。

另一方面,魔术(%%R, %%fortran)在开始时Python-only,他们要求Python内核将一段代码执行成另一种语言,通过绑定库。大多数时候,魔术只是 Python 库调用的语法糖。

从用户的角度来看,差异很小,但可能会产生一些影响。例如,很难在内核之间交换变量。使用魔法,数据交换更容易,但完成和反省更难。

希望对您有所帮助。