C语言代码配置python调用的pyd文件以及接口模块
一、说明
本文主要为了python调用C的功能接口。C语言编译环境采用Visual Studio 2013,配置生成 pyd文件。 然后再使用 swig工具,自动生成python调用的接口。然后python调用pyd文件和相关接口,进而python调用C语言的功能。
二、编写C语言代码
2.1 项目创建
2.2 代码
// 源文件 .c #include "test.h" int fun(int a, int b) { printf("a+b="); return a + b; } // 头文件 .h int fun(int a, int b);
三、visual studio 配置python环境
四、
/* test.i */ %module test %contract fun(int a, int b){ require: a >= 0; b >= 0; } %inline %{ extern int fun(int a, int b); %}接口文件包含 ISO C 函数原型和变量声明。
%module指令定义将由SWIG创建的模块的名称。
%{%}块提供了一个位置,用于将其他代码(如C头文件或其他C声明)插入到生成的C包装器代码中。
五、swig工具生成接口py文件
swig -python C:\Users\50927\Desktop\C_Python\ConsoleApplication1\ConsoleApplication1\test.i
执行结束之后,会生成一个 ***_wrap.c文件 和一个 封装好的 py文件
将 ***_wrap.c 文件放在 源文件下,开始编译,生成解决方案。
编译完成之后, 在 Release 文件夹下面会出现pyd文件
# 将 Release 文件夹中的 pyd文件,以及swig生成的 py文件拿出来,编写 python代码,调用 py文件中的函数, py文件中的函数会调用 pyd中的封装的c代码 import test print test.fun(1, 2) # a+b=3