Python使用ctypes调用C
1、为什么要使用Python调用C语言
C的性能更高
2、Python调用C语言的步骤
(1)将.c文件编译为动态库文件,即.so文件
如果是Windows,可以安装MinGW,它是在Windows上可以使用的GNU工具和库的集合,包含gcc,g++等。
# 将C源码文件demo.c编译为动态库文件demo.so,在Windows、Linux上都是这个命令,亲测 gcc demo.c -shared -o demo.so
(2)使用ctype加载动态库文件,然后就可以调用C文件中的函数了
import ctypes # 或者用ctypes.cdll.LoadLibrary('./demo.so') demolib = ctypes.CDLL('./demo.so')
3、Python调用C语言实例演示
(1)编写 demo.c文件,实现一个求1-100的和的函数,代码如下:
#include <stdio.h> int add(int a, int b){ int sum = a + b; return sum; }
(2)将demo.c源码文件编译为动态库文件demo.so
gcc demo.c -shared -o demo.so
(3)编写Python文件
import ctypes # 或者用ctypes.cdll.LoadLibrary('./demo.so') demolib = ctypes.CDLL('./demo.so') def test_add(): demolib.add.argtypes = [ctypes.c_int, ctypes.c_int] demolib.add.restype = ctypes.c_int r = demolib.add(1, 2) print(f'test_add, sum: {r}') if __name__ == '__main__': test_add()
(4)执行 python3 demo.py 这里在python文件中也同样可以拿到C源码函数的返回值
E:\test> python demo.py test_add, sum: 3 E:\test>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2023-01-11 超详细 DNS 协议解析(转)