我可以通过以下方式将两个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 console
和ipython notebook
之间切换的建议吗?
答案 0 :(得分:7)
没有用户界面,也没有API与笔记本电脑这样做,假设代码简单,笔记本电脑是拥有和启动内核的人。您必须编写自己的KernelManager
子类并配置IPython以使用它(+编写一些UI代码,如果您希望它易于使用),以便您能够选择已有的内核。
答案 1 :(得分:1)
相反,我会给您解决方案。无需将笔记本连接到现有内核,您可以轻松地将ipython会话连接到笔记本启动的内核。
%qtconsole
现在,您已将控制台和笔记本电脑连接到同一内核。您可以多次运行magic命令并具有多个控制台。
顺便说一句,qtconsole是一个非常智能的控制台。它甚至比终端设备更好,特别是如果您是Windows用户。
答案 2 :(得分:0)
以下是自定义内核管理器的示例,该示例允许Jupyter笔记本从外部创建内核。
https://github.com/ebanner/extipy
充其量是骇人听闻的解决方案。
Jupyter的人们可以希望创建这样的客户内核类,并将其包含在包中,并通过简单的现有开关启用它。我看不出他们为什么不能这样做的任何原因。