编译c语言源文件为python ctypes可调用的so库文件提高python性能(实例讲解)
众所周知的真理—python性能差c语言一大截,为了弥补这个缺陷,一方面python提供了多进程(multiprocessing),并且还提供了ctypes库,该库可调用gcc 编译c语言生成的.so库文件,从而得到python性能的提升。
.so文件的编译确实费了不少力气,主要是对gcc编译知识的缺乏,网上的资料大多抄袭,源头错了,下游全部都是错的,在不断地百度之后,发现了一个可以用来编译.so的方法,特记录下来。 例:c源程序为 getSum.c,则有:
gcc -shared -fPIC -DPIC getSum.c -o getSum.so
即可以将c源文件编译成可供python调用的so库文件,赶紧来享受c带来的性能飚升的体验吧,ps:对ctypes不是很了解,正在学习中,又重新燃起对c语言学习的激情了。
注:此编译仅限linux,测试机为debian8.7 ,python2,python3皆能用,windows下未做测试,日后补充上来。
一个例子:
getSum.c
#include <stdio.h>
int getSum()
{
int sum = 0;
int a,b;
for(a=0;a<=100;a++)
{
sum += a;
}
return sum;
}
编译.so库文件
gcc -shared -fPIC -DPIC getSum.c -o getSum.so
ctypedemo.py文件调用
# -*- coding: utf-8 -*-
from ctypes import CDLL
lib = CDLL("./getSum.so")
print(lib.getSum())
更多阅读
- CI 在nginx中出现404错误的解决方式
- php优化加速:centos 6.5 一步步教你开启 Zend Opcache
- centos apache安装wordpress插件出现需要输入ftp帐号的问题(已解决)
- 宇秀下拉 2025-11-21日下拉更新案例
- 宇秀搜索引擎下拉及相关搜索推荐营销系统6.0-精确定制每个词:万能key标签【功能添加】
- windows 10应用商店无法打开 错误代码: 0x80072F7D CV: GS7YDyJYIUmOC2MR 解决办法
- 小鸿百度站长收录批量提交工具
- 2019新ad key及下拉词格式对应教程
- drupal 语言包下载地址(包含中文语言包)
- 宇秀搜索引擎下拉与相关搜索营销系统格式定制重要说明 从6.473版本开始

qq:1535604235


QQ
微信
商店