【发布时间】:2018-11-18 14:06:04
【问题描述】:
我正在为以下任务寻找一些指示: 我想将 Python 控制台添加到现有的 C/C++ 程序中。一个重要的要求是用户应该能够通过解释器访问我们的软件。应该可以运行整个脚本,也可以在交互模式下使用 Python 解释器。我们已经有一个 Python 模块,用户可以通过它使用套接字访问我们的软件,只是没有集成到我们的软件中。
如果不嵌入和/或扩展 Python 解释器,这是否可行?最好用户能够使用已经安装的任何 python 解释器。我需要 Python 解释器处于交互模式,然后在两个进程之间传输数据。 code.InteractiveInterpreter 或 code.InteractiveConsole (https://docs.python.org/3/library/code.html) 是要走的路吗?
编辑:我不是在寻找第 3 方库/工具。我知道我可以扩展解释器以获得结果。
无论哪种方式(扩展与否),我都必须在进程之间传输数据。哪种进程间通信适合这种任务?
【问题讨论】:
-
它太宽泛了。 Python 解释器允许使用任何操作系统对象在进程之间进行通信,因此这两个进程无论如何都不应该相关。从另一个角度来看,您可以使用 boost.Python 或仅使用本机 Python API 在 C++ 中创建一个进程,该进程将调用 python 脚本或任何其他内部事物。此外,您可以获取 Python 控制台的源代码,并在其中添加您想要添加的任何内容以进行任何类型的通信。
-
进程间通信特定于操作系统。如果你想要一个漂亮而强大的多语言抽象,我建议使用 zmq.inproc 套接字。
-
@Arkady:感谢您的评论。我应该补充一点,我不想使用 3rd 方库——如果不是绝对必要的话。无论如何,我的问题更多是关于“交互式 python 解释器”,其次是关于我们的软件和解释器之间的通信。
标签: python c++ c python-3.x