使用 Qt 控制台连接到现有的 IPython 内核#

前端/内核模型#

传统的 IPython (ipython) 包含一个单一进程,该进程将基于终端的 UI 与运行用户代码的进程结合在一起。

虽然这个传统应用程序仍然存在,但现代 Jupyter 包含两个进程

  • 内核:这是运行用户代码的进程。

  • 前端:这是提供用户界面的进程,用户在其中键入代码并查看结果。

Jupyter 目前有 3 个前端

  • 终端控制台 (jupyter console)

  • Qt 控制台 (jupyter qtconsole)

  • Notebook (jupyter notebook)

内核和前端通过基于 ZeroMQ/JSON 的消息协议进行通信,该协议允许多个前端(即使是不同类型的)与单个内核进行通信。这为各种有趣的事情打开了大门,例如将控制台或 Qt 控制台连接到 Notebook 的内核。例如,您可能希望将 Qt 控制台连接到 Notebook 的内核,并将其用作帮助浏览器,在 Qt 控制台中对对象调用 ??(其分页器比笔记本中的分页器更灵活)。

本 Notebook 描述了如何将另一个前端连接到与 Notebook 关联的 IPython 内核。此处提供的命令目前特定于 IPython 内核。

手动连接#

要手动将另一个前端连接到内核,您首先需要使用 %connect_info 魔术找到内核的连接信息

[ ]:
%connect_info

您可以看到,此魔术显示了连接到此 Notebook 的内核所需的一切。

使用新的 Qt 控制台自动连接#

您还可以使用 %qtconsole 魔术启动连接到当前内核的新 Qt 控制台。这将自动检测必要的连接信息并为您启动 Qt 控制台。

[ ]:
a = 10
[ ]:
%qtconsole