【发布时间】:2019-08-14 12:32:10
【问题描述】:
我正在尝试使用 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 数组的引用?
谢谢!
【问题讨论】: