使用cpp boost.python

时间:2019-02-09 18:22:29

标签: python c++ boost scripting

我正在使用带有boost.python的嵌入式python,但找不到用于使嵌入式python(不带dll)访问cpp变量作为全局变量或局部变量的方法的任何示例。

例如: 我有一个cpp类,我称之为A 它具有方法和成员 我想执行一个Python脚本,它将能够在我的cpp端访问类型为A的名为“ a”的变量(包括他的方法和成员)。

请参阅示例代码:

app.cpp-

A a;
boost::python::object main_module = boost::python::import("__main__");
global = main_module.attr("__dict__");
boost::python::exec_file("test.py", global);
global["test"].attr("Start")();

test.py-

class test
    def Start():
          return a.someMember #be able to access var "a" of type A used in app.cpp

我尝试使用BOOST_PYTHON_MODULE宏创建一个python模块来包装cpp类。但是根据文档,这意味着我应该从我的cpp文件中创建一个dll文件。 问题是我需要将python嵌入到cpp中,而不要使用cpp扩展python。

老实说,我很困惑,除了Microsoft Visual Studio的video之外,还没有在线找到该用例的示例(很惊讶),该示例显示了如何用pybind而不是boost来做我想做的事.python。

0 个答案:

没有答案