Python中有時需要調用c程序中的函數。使用ctype庫可以很方便地調用c語言。現說明方法,以及注意事項。
c程序編譯為.so文件:
我們需要的c語言文件為test.c,要從其中調用func(x,y)函數。
gcc -fPIC -shared test.c -o test.so
導入該文件
隨后,我們在python中導入該test.so文件,方法如下:
import os
from ctypes import *
p = os.getcwd() + '/test.so' # 文件路徑
f = CDLL(p) # 用CDLL方法讀取該.so文件。
調用函數
這時我們已經讀導入了該文件,可以使用文件中的函數了。
現在分情況討論,如果func中傳入的參數均為整數,那么比較簡單:
a = 3
b = 4
f.func(a, b)
如果傳入的參數為浮點數,那么得提前聲明一下變量:
c = c_float(5.5)
d = c_float(6.66)
f.func(c, d)
如此,便可以正確調用。