使用CFFI作为已经编译好的C库的接口。
库譬如 piapprox.dll (Windows) 或 libpiapprox.so (Linux and others) 或者 libpiapprox.dylib (OS X)
库里面有个函数 float pi_approx(int n)
| 版权声明:itisyang,未经博主允许不得转载。
使用CFFI调用这个接口的方式如下:
首先创建一个piapprox_build.py:
from cffi import FFI
ffibuilder = FFI()
# cdef() expects a string listing the C types, functions and
# globals needed from Python. The string follows the C syntax.
ffibuilder.cdef("""
float pi_approx(int n);
""")
# This describes the extension module "_pi_cffi" to produce.
ffibuilder.set_source("_pi_cffi",
"""
#include "pi.h" // the C header of the library
""",
libraries=['piapprox']) # library name, for the linker
if __name__ == "__main__":
ffibuilder.compile(verbose=True)
执行这个脚本。如果一切正常,会生成一个 _pi_cffi 模块
在你的 Python 脚本中,可以这样使用刚刚编译出的扩展模块
from _pi_cffi import ffi, lib
print(lib.pi_approx(5000))