我正在使用带有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。