Python调用C语言代码
1.目的
python的优点是代码简单和强大的库,但作为解释性语言运行效率较低。但python支持调用c语言的代码。所以可以将一些核心且对效率要求较高的代码写在c中用python来调用。
本文展示如何用ctypes在python中调用c语言代码.
2. 如何做?
1.编写c语言代码命名为hello.c
#include <stdio.h>
void hello_world()
{
printf("hello world!!\r\n");
}
2.将hello.c编译成动态链接文件dll(win)或so(linux,mac)
本文中$filename$
替换成hello
For Windows
gcc -shared -o $filename$.dll -fPIC $filename$.c
For Linux
$ gcc -shared -Wl,-soname, $filename$ -o $filename$.so -fPIC $filename$.c
For Mac
$ gcc -shared -Wl,-install_name, $filename$.so -o $filename$.so -fPIC $filename$.c
–shared -fPIC 是编译动态库的选项。
-o 是指定生成动态库的名称
3.使用库ctypes导入动态链接文件
from ctypes import *
test = cdll.LoadLibrary("./hello.dll")
#这里是相对路径,可以改成绝对路径
4.运行
test.hello_world()
参考链接