我正在开发一个更大的 C++ 代码库,我想向其中添加一个 Python CLI,例如用于测试目的。为此,我想向 python 公开一些 C++ 函数,以便与我的系统进行交互。问题是,我的 C++ 程序在我希望 python shell 处于活动状态的同时运行,这样我就可以向系统发送一些事件并得到答案。我已经去了 google 小屋,但我能找到的只是如何将 C/C++ 代码编译为 python 模块,或者如何从 C/C++ 中调用 python 代码。我还没有找到关于如何在活动系统上使用 python CLI 的解决方案或任何示例。
到目前为止,唯一与我想做的事情类似的是
PyRun_InteractiveLoop
命令。这样,我至少在 C++ 代码运行时运行了 python CLI。我还找到了几个关于如何使 C++ 代码可以作为模块从 python 调用的示例。问题是,我找不到同时获得这两件事的方法。
作为已将 Python CLI 添加到 C++ 代码库的人,我建议以下几点:
-您可以使用 PyRun_SimpleString 函数或加载 Python 脚本来运行 Python 代码。
-包含 C++ 和 Python 所需的头文件。对于 C++,包含或您需要的任何其他标头。对于 Python,请包含 Python.h。
#include <iostream>
#include <Python.h>
int main(int argc, char* argv[]) {
Py_Initialize();
// Run a Python command
PyRun_SimpleString("print('Hello from Python!')");
Py_Finalize();
return 0;
}