Boost python,在嵌入时从python调用c ++函数
Boost python, calling c++ functions from python when embedded
我目前有以下内容:
namespace py=boost::python;
//C++
void f() {
std::cout << "hello worldn";
}
//I am not precious about this, if it can be done without a module that would be great
BOOST_PYTHON_MODULE(test)
{
py::def("f", f);
}
int main() {
auto main_module =py::import("__main__");
auto main_namespace =main_module.attr("__dict__");
//???????
auto result=py::exec_file("t.py", main_namespace);
}
//t.py
f()
我正在尝试调用f,但我不确定使其工作所需的胶水。有我可以做的课程
int main() {
//...
py::obejct p_my_type=py::class_<my_type>("my_type").def("f", &my_type::f);
main_namespace["my_type"]=p_my_type;
//...
但是boost::python::def
似乎没有像class_
那样返回boost::python::object
我的问题是,如何让第一个测试用例按预期工作?其次,我在第二个代码片段中公开类型的方式是否"正确"?
修复很简单,但在此页面的文档中未提及:
http://www.boost.org/doc/libs/1_55_0/libs/python/doc/tutorial/doc/html/python/embedding.html
我需要这样做:
auto main_module =py::import("__main__");
auto main_namespace =main_module.attr("__dict__");
inittest();
auto result=py::exec_file("t.py", main_namespace);
from test import f
f()
相关文章:
- 从python调用openMP共享库时,未定义opnMP函数
- 使用JsonCpp将数据返回到带有pybind11的python会在python调用中产生Symbol not foun
- 为什么我无法打开/读取从 Python 调用的 C 扩展名中的 txt 文件?
- 从 Python 调用 c++ 文件
- 如何为从 Python 调用C++启动 GDB?
- 从python调用C++函数,使用cython,使用cythonize
- 为什么在 2019 年我们仍然不能使用 ctypes 从 Python 调用C++?
- 如何使用 python 调用 c++ 函数
- 从 Python 调用 Windows DLL 函数时出错
- 如何从 Python 调用 MPI .so 文件
- 我如何有boost.python调用一个函数来处理对象
- 从Python调用的C++dll
- 通过嵌入式 Python 调用C++代码
- 从 Python 调用 cpp 函数时出现分段错误
- 从Python调用C++64位共享库
- 使用ctypes从Python调用C++方法不起作用
- Boost python,在嵌入时从python调用c ++函数
- 从 Python 调用 C++ opencv 函数(发送一个 cv :: mat 到 C++ 使用 opencv 的 d
- 从 Python 调用自定义C++ dll
- 如何使用Python调用C++代码