将.cpp文件中的函数导入python

劳尔

让我从免责声明开始,我将这个问题放在大量研究之后,而不是找到任何直接且分步的示例。

已经阅读了Cython,SWIG和Boostpython文档,但无法逐步进行操作,因此请在此处发布-

我有一个定义了几个数学函数的.cpp和.h文件,我想在python(.py)代码文件中调用它们。

我该如何整合?哪种是最好,最整洁的方式。请说明

劳尔

由于我最终使用这里提供的一些帮助和研究来解决了问题,因此让我发布答案。

我使用Cython通过Python导入了CPP函数。

Cython用CPP文件包装Python代码并编译两者。结果是一个Python模块(可以在setup.py文件中指定该模块的名称),并且可以像往常一样调用该模块。

我面临的问题是从Python调用CPP函数。因此,这是解决该问题的技巧

  1. 在C ++ Header和CPP文件中定义函数。
  2. 使用cdef在导入模块的开头定义Python脚本中的函数,以定义其他变量,该定义类似于C ++头文件定义
  3. 在将参数和数组粘贴到python的函数调用中时,请确保所有变量和数组都类型转换为CPP。
  4. 对于数组,这有点棘手。例如,可以使用来强制转换Python中的double数组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,...)

休息会很顺利。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章