如何将boost python list转换为PyObject

时间:2013-12-21 16:02:00

标签: c++ python numpy boost-python python-c-api

我需要在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的正确方法是什么?

很多!

1 个答案:

答案 0 :(得分:4)

您无法从boost :: python :: object中提取PyObject。对象类有一个成员ptr(),它返回底层PyObject。