【问题标题】:How to convert boost python list to PyObject如何将boost python列表转换为PyObject
【发布时间】:2013-12-21 16:02:00
【问题描述】:

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

非常感谢!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      • 2012-03-12
      • 2019-06-24
      • 1970-01-01
      • 2021-04-12
      • 2014-03-03
      相关资源
      最近更新 更多