我正在尝试使用Boost.Python将numpy数组传递到C++。
C++代码如下:
#include <boost/python.hpp>
#include <boost/python/numpy.hpp>
void f(boost::python::numpy::ndarray& x){}
BOOST_PYTHON_MODULE(libtest)
{
boost::python::def("f", f);
}
以下是 Python 代码:
import libtest
import numpy
x=numpy.array(range(3))
libtest.f(x)
这会导致分段错误。在按值传递和按引用传递变量时会发生这种情况。
我已经找到了实现我所需的内容的方法。然而,使用Boost.Python的目的是为了能够从模块中简单地调用函数,而无需像ctypes一样在Python侧编写包装器来处理某些类型或返回值。
是否可以直接传递一个numpy数组的引用?
谢谢!