python中调用C语言,包教包会

python中调用C语言,包教包会,第1张

python中调用C语言,包教包会 python中调用C语言

首先把文件.c转换成.dll或者.so。
Windows下Demo亲测一波,话不多说,上图上代码
C代码

# include

int foo(){
	int i,k,m;
	for(i=0;i<1000;i++){
		for(k=0;k<1000;k++){
			for(m=0;m<1000;m++)	{
			}
		}
}
	return 0; 
}

将C语言代码保存为.c文件。在当前目录下进入cmd。(前提是有mingw环境,很简单,网上很多教程。)执行命令“gcc -o foo.so -shared -fPIC foo.c”转化为.so文件,"gcc foo.c -shared -o foo.dll"转化
为.dll文件。

python代码

from ctypes import cdll
from time import time

#.c-->.so
start=time()
dll=cdll.LoadLibrary('./foo.so')
dll.foo()
print(f'c,so:{time()-start}')

#.c-->.dll
start=time()
dll=cdll.LoadLibrary('./foo.dll')
dll.foo()
print(f'c,dll:{time()-start}')

#Python
start=time()
for i in  range(1000):
    for k in range(1000):
        for m in range(1000):
            pass
print(f'python:{time()-start}')


可以看到;so、dll文件都可在windows环境下供python使用。并且可以看到上述Demo中,C的速度比Python快近20倍。
我个人比较喜欢Python+C混合编程这种方式,原因主要有几点:
1、提高性能,弥补了python性能上的不足。
2、相对安全,对dll文件或so文件进行加密,有效防止逆解析保证代码安全。
3、结合Python强大的生态环境,也满足了高效快速的开发。
over,兄兄兄兄弟们,赞赞赞赞起来!!!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5634717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存