我需要在C ++程序中构建一个numpy数组
bp::list py_points;
// some code ....
在代码的某些部分我需要将 py_points 转换为PyObject *类型以评估python模块
PyObject * point_array, * numpy, * ndarray;
numpy = PyImport_ImportModuleNoBlock("numpy");
ndarray = PyObject_GetAttrString(numpy, "array");
point_array = PyEval_CallObject(ndarray,bp::extract<PyObject *>(py_points)); //error!
错误在这部分
bp::extract<PyObject *>(py_points)
将boost python对象转换为PyObject的正确方法是什么?
很多!
答案 0 :(得分:4)
您无法从boost :: python :: object中提取PyObject。对象类有一个成员ptr(),它返回底层PyObject。