我正在尝试使用 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);
}
Run Code Online (Sandbox Code Playgroud)
Python代码是:
import libtest
import numpy
x=numpy.array(range(3))
libtest.f(x)
Run Code Online (Sandbox Code Playgroud)
这会产生分段错误。当按值和引用传递变量时会发生这种情况。
我找到了一种方法来完成我需要的事情。然而,使用 Boost.Python 的目的是能够简单地从模块调用函数,而不必像 ctypes 那样在 Python 端编写包装器,其中必须处理某些类型或返回值。
是否可以简单地传递对 numpy 数组的引用?
谢谢!
归档时间: |
|
查看次数: |
1684 次 |
最近记录: |