IPython 笔记本:如何连接到现有内核?

IPython notebook: How to connect to existing kernel?

我可以通过以下方式将两个 ipython console 会话连接到一个内核:

$ ipython console
In [1]: %connect_info  
{
   ... Content of JSON with info for connecting ...
}

Paste the above JSON into a file, and connect with:
    $> ipython <app> --existing <file>
or, if you are local, you can connect with just:
    $> ipython <app> --existing kernel-43204.json
or even just:
    $> ipython <app> --existing
    if this is the most recent IPython session you have started.

因此我可以再次用控制台替换 ​​<app>

$ ipython console --existing kernel-43204.json

但是,我想与 ipython notebook 共享我的内核,这样我就可以可视化我的数据。我试过但失败了:

$ ipython notebook --existing kernel-43204.json
[C 13:35:01.025 NotebookApp] Unrecognized flag: '--existing'

有什么建议可以让我在 ipython consoleipython notebook 之间工作和切换吗?

没有 UI,也没有 API 对笔记本执行此操作,为简化代码假设笔记本是拥有并启动内核的笔记本。您必须编写自己的 KernelManager 子类并配置 IPython 才能使用它(+ 编写一些 UI 代码,如果您希望它易于使用),以便您能够select 一个已经存在的内核。

下面是允许 Jupyter 笔记本在外部创建内核的自定义内核管理器示例。

https://github.com/ebanner/extipy

这充其量只是一种骇人听闻的解决方案。

Jupyter 人员有望创建这样的自定义内核 class 并将其包含在程序包中并通过简单的现有开关启用它。我看不出有任何理由他们不能这样做。

我反过来给你一个解决方案。您可以轻松地将 ipython 会话连接到由笔记本启动的内核,而不是将笔记本连接到现有内核。

  1. 启动你的笔记本。现在你有一个 运行ning 内核。
  2. 在代码单元格中,运行 魔术命令 %qtconsole

现在你有一个控制台和连接到同一个内核的笔记本。您可以 运行 多次使用魔术命令并拥有多个控制台。

顺便说一句,qtconsole 是一个非常智能的控制台。它甚至比终端更好,特别是如果您是 Windows 用户。