让我先说一个免责声明,即我在经过大量研究后提出这个问题而没有找到任何直接和循序渐进的例子。
已经通过Cython,SWIG,Boostpython文档,但无法一步一步地进行,所以在这里发布 -
我有一个.cpp& .h文件中定义了几个数学函数。我想在python(.py)代码文件中调用它们。
我如何整合?哪种方式最好也是最好的方法。请说明
答案 0 :(得分:1)
参见Cython文档的this part;它会逐步引导您与C库进行交互。
答案 1 :(得分:0)
由于我最终使用此处提供的一些帮助和研究解决了这个问题,让我发布答案。
我使用Cython通过Python导入了CPP函数。
Cython用CPP文件包装Python代码并编译两者。结果是一个Python模块(可以在setup.py文件中指定模块的名称),并且可以像往常一样调用模块。
我面临的问题是从Python调用CPP函数。所以这是我的工作提示
array.array(array_to_cast)
进行类型转换。在下面的示例中,我们将python数组dev
强制转换为c ++数组dev_arr
。 请注意dev
是python中double类型的数组,因此输入array.array()
的第一个参数是' d' 。 cdef array.array dev_arr = array.array('d',dev)
在将dev_arr
数组传递给主CPP函数时,您必须指定此数组: data.as_doubles
fn_response = cpp_fn_call(stddev_arr.data.as_doubles,...)
休息将顺利进行。