CFFI Python C接口指南 | AI生成和翻译

Home 2025.09

什么是 CFFI?

CFFI(C 外部函数接口)是一个用于从 Python 代码调用 C 函数的 Python 库。它兼容 CPython 和 PyPy,为 ctypes 等库提供了更安全、更便携的替代方案。它支持两种主要模式:ABI(调用现有共享库)和 API(内联编译 C 代码)。

安装

使用 pip 安装 CFFI:

pip install cffi

CFFI 需要 C 编译器(例如 Linux 上的 GCC,Windows 上的 Visual Studio)来构建模块。

基础用法示例

以下是一个简单用例的逐步指南:使用 API 模式(推荐用于新代码)调用一个将两个整数相加的 C 函数。

  1. 导入并设置 FFI
    from cffi import FFI
    ffibuilder = FFI()
    
  2. 定义 C 声明: 在字符串中指定 C 函数签名:
    ffibuilder.cdef("""
        int add(int a, int b);
    """)
    
  3. 提供 C 源代码: 包含 C 实现:
    ffibuilder.set_source("_example",
        """
        int add(int a, int b) {
            return a + b;
        }
        """)
    
  4. 编译模块: 运行此脚本一次以构建 C 扩展:
    if __name__ == "__main__":
        ffibuilder.compile(verbose=True)
    

    这将生成一个编译后的模块(例如 _example.cpython-39-x86_64-linux-gnu.so)。

  5. 使用编译后的模块: 在 Python 代码中,导入并调用函数:
    from _example import lib
    result = lib.add(5, 3)
    print(result)  # 输出:8
    

关键概念

模式:ABI 与 API

高级功能

完整文档请参阅 官方 CFFI 文档。本文涵盖了基本内容——通过实验这些示例来适应你的需求。如果你有特定的用例,请提供更多细节以获得针对性的建议。


Back

x-ai/grok-code-fast-1

Donate