我需要使用python脚本扩展我的c ++应用程序,但我不确定应该使用哪个接口库。基本的通信是:c ++ app向脚本注册一些类方法(以便它们可以作为模块加载到脚本中),然后调用python脚本中的特定函数。然后,脚本应该在能够调用c ++方法的同时执行其任务。脚本完成后,c ++应用程序应该能够使用脚本的返回值(例如,作为std :: list)。
从我读过的内容来看,boost.python功能非常强大,考虑到我已经使用了boost,这似乎还有很长的路要走。但是在文档中,我还没有看到将方法(静态或非静态)暴露给python脚本的方法。
这可能吗?我怎么能这样做?
修改:
好的,我想我应该更具体一点,对不起。我已经知道如何将python库等导入到我的c ++代码中,并且我已经了解了有关嵌入的提升文档,但没有得到我想要的东西。
为清楚起见,这是我的方案中的工作流程:
我认为第三点是这里棘手的部分,我不知道如何实现这一目标......
答案 0 :(得分:0)
这可能吗?
当然,是的。
我该怎么做?
在最一般意义上,
使用以下命令导入python库:
some text here
使用以下命令访问库对象和子对象及函数:
boost::python::object obj = boost::python::import("module_name");
这应该足以让你前进 - 随着你的进一步发展,细节在the documentation。
(实施例:)
obj.attr("name");