我有一个 C++ 程序接收来自用户的呼叫。其中一些调用应该由 python 脚本处理。这就是我的做法:
Py_Initialize()
开始时,它使用并加载一些模块和函数来加载 Python 解释器。我保留对它们的引用。这行得通。- 在每次调用时,都会调用相应的函数
第一次效果很好,但第二次调用时我总是遇到分段错误PyObject_CallObject
。我已尝试使用Calling python method from C++ (or C) callback中的提示修复此问题,但它仍然不起作用。
此外,如果我尝试运行PyRun_SimpleString("import <module_name>")
,我也会遇到分段错误!而这一次我什至没有使用参考。
注意:初始化是通过单例模式完成的,所以第一次调用会在初始化之后立即发生。