IPython notebook:如何连接到现有内核?

时间:2015-07-13 11:40:21

标签: ipython ipython-notebook

我可以通过以下方式将两个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笔记本共享我的内核,以便可视化我的数据。我尝试过但失败了:

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

有关我如何工作以及在ipython consoleipython notebook之间切换的建议吗?

3 个答案:

答案 0 :(得分:7)

没有用户界面,也没有API与笔记本电脑这样做,假设代码简单,笔记本电脑是拥有和启动内核的人。您必须编写自己的KernelManager子类并配置IPython以使用它(+编写一些UI代码,如果您希望它易于使用),以便您能够选择已有的内核。

答案 1 :(得分:1)

相反,我会给您解决方案。无需将笔记本连接到现有内核,您可以轻松地将ipython会话连接到笔记本启动的内核。

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

现在,您已将控制台和笔记本电脑连接到同一内核。您可以多次运行magic命令并具有多个控制台。

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

答案 2 :(得分:0)

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

https://github.com/ebanner/extipy

充其量是骇人听闻的解决方案。

Jupyter的人们可以希望创建这样的客户内核类,并将其包含在包中,并通过简单的现有开关启用它。我看不出他们为什么不能这样做的任何原因。