将Python嵌入到C++应用程序中

Moh*_*ana 5 c++ python boost

语境:

我们一直面临的问题是对我们的市场数据应用进行单元测试.这些应用程序坐下来观察从源中检索的数据并执行某些操作.一些难以触发的关键事件很少发生,并且测试人员很难在所有情况下验证我们的应用程序是否正确执行,因此我们必须依赖于单元测试.

这些系统通常通过在事件发生时发出回调(进入我们的应用程序)来工作,然后我们的任务就是处理这个问题.

解决方案我设想:

是否可以嵌入Python或扩展(不是100%清楚),以便测试人员可以启动Python REPL并发出类似于回调的函数调用,然后由我们的C++类处理.在运行时对我们的对象进行某种形式的动态操作.

Fle*_*exo 7

我在我的一个项目中做了类似的事情,使用SWIG为C++代码的相关部分生成python绑定.然后我按照其他人的建议嵌入了翻译.完成后我可以随意执行python代码(例如PyRun_SimpleString),它可以访问C++代码.通常我最终使用类似Singleton的东西来更容易地从python访问特定的C++对象.

另外值得一提的是swig python模块中的导演,它允许更直观地处理虚拟功能.根据您正在做的事情,您可能会发现这些非常有帮助.