在Linux环境下,要让Python脚本与C语言代码进行交互,你可以使用Python的ctypes
库或者cffi
库
- 使用ctypes库:
首先,你需要编译一个C语言库。假设你有一个名为example.c
的文件,内容如下:
#includeint add(int a, int b) { return a + b; }
使用以下命令编译这个文件:
gcc -shared -o libexample.so example.c
这将生成一个名为libexample.so
的共享库文件。
接下来,创建一个名为example_wrapper.py
的Python脚本,内容如下:
import ctypes # 加载共享库 libexample = ctypes.CDLL('./libexample.so') # 设置函数参数类型 libexample.add.argtypes = [ctypes.c_int, ctypes.c_int] # 设置函数返回值类型 libexample.add.restype = ctypes.c_int # 调用C语言函数 a = 3 b = 4 result = libexample.add(a, b) print(f"{a} + {b} = {result}")
运行这个Python脚本,你将看到输出结果:
3 + 4 = 7
- 使用cffi库:
首先,安装cffi
库:
pip install cffi
接下来,创建一个名为example_wrapper.py
的Python脚本,内容如下:
from cffi import FFI # 定义C语言函数签名 ffi = FFI() ffi.cdef("int add(int a, int b);") # 加载共享库 libexample = ffi.dlopen('./libexample.so') # 调用C语言函数 a = 3 b = 4 result = libexample.add(a, b) print(f"{a} + {b} = {result}")
运行这个Python脚本,你将看到输出结果:
3 + 4 = 7
这两种方法都可以让Python脚本与C语言代码进行交互。你可以根据自己的需求和喜好选择合适的方法。