简介
ctypes是Python的外部函数库,提供与C兼容的数据类型,并允许调用DLL或共享库中的函数。可使用该模块以纯 Python形式对这些库进行封装。
Linux与Windows平台不同,使用方法也有所不同,本文聚焦于Linux平台
载入动态链接库
以下是简单示范
1. 生成共享库
1)编辑demo.c
//demo.c
#include<stdio.h>
int prompt(const char *message){
printf("%s \n",message);
return 0;
}
2)编译生成
$gcc -fPIC -shared -o demo.so demo.c
2.导入共享库并使用
1)编辑pydemo.py
#pydemo.py
from ctypes import cdll
libObject = cdll.LoadLibrary('./demo.so')
ibObject.prompt.argtypes = [ctypes.c_char_p]
ibObject.prompt.restype = ctypes.c_int
i = libObject.prompt("hello world")
print(i)
2)运行
$python pydemo.py
......暂时写到这里
重点是python的模块机制--这个思想非常值得大家去学习
1. Extending Python with C or C++ — Python 3.12.5 documentation