如何在Python語言中調用C庫?
C側:.c文件編譯為.dll文件或.so文件,而不是一般的.o文件。例如:gcc -shared -o demo.dll demo.c
Python側:用ctypes庫的CDLL函數調用該.dll或.so文件。例如:
from ctypes import CDLL lib =CDLL("./demo.dll")
FlinCode博主[1]說Windows是.dll,Linux生成.so文件。我的電腦是MacOS,兩者均可以的。
舉例
- C編程
編輯 demo.c
#include <stdio.h>int addFromDLL(int a, int b){return a+b;
}
編譯 demo.c
gcc -shared -o demo.dll demo.c
可以看到生成demo.dll文件。
- Python編程
編輯Python_call_c.py
#https://www.youtube.com/watch?v=Fi-IELfykxIfrom ctypes import CDLLlib =CDLL("./demo.dll")result = lib.addFromDLL(2025, 1)print(result)
編譯Python_call_c.py
python3 Python_call_c.py
得到結果2026。
參考:
FlinCode, Calling C Functions from Python, 2024-Jan-12, https://www.youtube.com/watch?v=Fi-IELfykxI ↩︎