📜  如何在Python中调用C函数(1)

📅  最后修改于: 2023-12-03 15:08:58.151000             🧑  作者: Mango

如何在Python中调用C函数

Python作为一门高级语言,在对于某些高性能计算或底层机器交互方面往往存在一定的缺陷。而C语言作为一门底层语言,在这些方面往往最为突出。因此 Python 应用程序会借助 C 来实现一些核心底层的加速操作。

本文将介绍在 Python 中调用 C 函数的方法。

方法

这里介绍两种方法:

  • ctypes
  • cffi
ctypes

ctypes 是 Python 中用于调用动态链接库的模块,我们可以使用 ctypes 轻松地调用 C 函数。

from ctypes import cdll
lib = cdll.LoadLibrary('./libtest.so')
res = lib.add(1, 2)
print(res)

这里使用 ctypes 调用了一个 C 语言动态链接库 libtest.so 中的一个函数 add,该函数返回两个数相加的结果。

cffi

cffi 是一个方便的 C 接口生成器,主要作用是自动固定 C 函数的声明,引用库,并剥离平台相关的问题。

from cffi import FFI
ffi = FFI()
lib = ffi.dlopen('./libtest.so')
ffi.cdef('int add(int, int);')
res = lib.add(1, 2)
print(res)

这里使用 cffi 调用了一个 C 语言动态链接库 libtest.so 中的一个函数 add,该函数返回两个数相加的结果。

相比 ctypes,cffi 更为方便,且具有更好的兼容性。

结束语

本文介绍了如何在 Python 中调用 C 函数,推荐使用 cffi,该方法更为优秀,具有更好的兼容性。同时,我们也可以根据自己的实际需求去选择不同的方法。