在Linux環境下,要讓Python腳本與C語言代碼進行交互,你可以使用Python的ctypes
庫或者cffi
庫
首先,你需要編譯一個C語言庫。假設你有一個名為example.c
的文件,內容如下:
#include <stdio.h>
int 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
庫:
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語言代碼進行交互。你可以根據自己的需求和喜好選擇合適的方法。