【发布时间】:2016-08-20 15:32:30
【问题描述】:
我正在使用 C++ (Qt) 开发 IPython 的前端。
我设法将 Python 嵌入到我的应用程序中,并检索绘图并将其显示在我的 GUI 中。现在我想启动一个 IPython 内核并通过 ZMQ 套接字连接到它。
我找到了一个description 用于 IPython 内核的通信协议。但是,它并没有说明 anywhere 要连接到哪些端口。所以有一个通信协议很好,但如果我不知道要使用哪些端口,那就完全没用了。
文档提到“内核规范”并告诉我使用jupyter kernelspec list 命令。这确实向我展示了一个目录,其中仅包含两个文件:logo-32x32.png 和 logo-64x64.png ...
如何找到我需要连接的端口,以便与我的 IPython 内核进行通信?
我通过从我的 C++ Qt 应用程序运行以下 Python 代码来启动我的 IPython 内核:
import IPython
IPython.start_kernel(argv=[])
【问题讨论】:
-
看看我的
ipy_repl.py更新版本,来自SublimeREPL 插件,用于Sublime Text 编程编辑器。那里没有特定于 Sublime 的 API 东西。基本上,它适用于高达 4.1.1 的 IPython 和高达 4.1.0 的 jupyter_console(它似乎不适用于更高版本的 IPython 4 或 5 的任何版本)以在 Sublime 视图中设置连接并运行IPython/Jupyter 内核,包括利用其自动完成功能。 -
start_kernel在当前进程中启动内核。听起来您想要的是一个单独的进程中的内核,您可以从应用程序进程连接到该内核。为此,您将使用 jupyter_client 模块。你可以看看像 Spyder 这样的应用程序,看看它们做了什么。
标签: python c++ qt ipython zeromq