使用cython将c ++代码编译成pyd

时间:2015-09-03 12:36:52

标签: python c++ cython

Cython将类似python的代码编译为C ++代码,然后使用gcc / g ++将其编译成像pyd这样的库。

让我说我会用纯C ++编写我的代码,然后将其编译成pyd以在Python中使用它,例如假设我有以下C ++模块

int sum(int a, int b){
    return a + b
}

是否可以在不使用像PyObject,Ctype ......之类的东西的情况下将该代码编译成pyd?或者代码必须首先使用Cython语法编写以与Python兼容?

1 个答案:

答案 0 :(得分:0)

我不是这方面的专家,但是由于没有人回答,我的意见如下:

如果你想避免使用PyObject结构和#34; Python.h"你应该使用cython。在C.

问题是** .pyd是一个专门预制的DLL,它公开了 import ()友好的接口,我认为它包括返回PyObjects。

但是在普通DLL或共享对象lib上使用ctypes并不困难:

>>> import ctypes
>>> mysum = ctypes.cdll.LoadLibrary("mysum.so") # Or DLL
>>> print mysum.sum(2, 3)
5

您只需将动态库中的sum函数导出即可,并按原样编译代码。