gpt4 book ai didi

python - 如何在 boost::python 扩展模块中正确组合 C++ 和 Python 代码?

转载 作者:太空宇宙 更新时间:2023-11-04 11:33:53 25 4
gpt4 key购买 nike

我正在尝试创建结合了 C++ 和 Python 代码的 Python 扩展模块。到目前为止,我能够很好地运行 Python 代码,但我找不到让我的 Python 对象作为我的模块导入的一部分出现的方法。我究竟做错了什么?

这里是我的 C++ 模块的示例代码(为清楚起见,我省略了绑定(bind) C++ 函数和类的 C++/boost::python 代码):

#include <boost/python.hpp>
BOOST_PYTHON_MODULE( my_module ) {
<... some boost::python code to bind C++ classes/functions ...>
boost::python::object main_module = boost::python::import("__main__");
boost::python::object main_namespace = main_module.attr("__dict__”);
boost::python::exec("aaa = 'ABC’\n”, main_namespace, main_namespace);
}

如果我尝试稍后在 Python 中:

import my_module
print my_module.aaa <— error!

(我知道我可以将 python 文件和 C++ 动态库分离到它自己的文件中,它都可以工作,但出于其他技术原因,我真的需要我的扩展模块只是一个文件)

最佳答案

boost::python::scope().attr("aaa")="ABC";

关于python - 如何在 boost::python 扩展模块中正确组合 C++ 和 Python 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23554807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com