实现python扩展的C API方法过程全纪录(windows)

第一步:安装编译器

推荐使用mingw,使用最为便利,可以避免各种难以记忆和看不懂的设置。

下载只需安装其中的gcc部分即可,并且将编译器所在文件夹添加的环境变量path之下,例如:

pah = %path%;c:\minGW\bin

第二步:安装python

推荐使用pythonxy,安装最为方便,省去很多不必要的麻烦。

第三步:写一段测试代码

基本方法就是:C函数+c API 包装器,静态数组,,模块初始化

//pythonc.c#include<python.h>#include<stdio.h>voidhello_pythoncapi(void){printf("hellopython");}staticPyObject*pythoncapi(PyObject*self,PyObject*args){char*inArgs=NULL;PyArg_ParseTuple(args,"s",&inArgs);printf("%s\n",inArgs);hello_pythoncapi();returnPyString_FromFormat("helloPYHTONCAPI");}staticPyMethodDefmethods[]={{"pythoncapi",pythoncapi,METH_VARARGS,"testpythonextension"},{NULL,NULL}};/*__declspec(dllexport)*/voidinitpythonc(void)/*thestringafter"init"mustbesamewithcodefile*/{Py_InitModule("pythonc",methods);/*the1stparameterstringmustbesamewithcodefile*/}

第四步: 编译

打开cmd,并运行如下命令

gcc c:\MinGW\pythonc.c -shared -Ic:\Python27\include -Lc:\Python27\libs -lpython27 -o pythonc.pyd

图中的当前路径是c:\Python27\libs,编译成功后,pythonc.pyd将保存在这个路径下。

第五步 使用扩展库

将pythonc.pyd拷贝至python路径下的Lib\site_packages文件夹,可以使用import导出模块并调用pythoncapi()函数。

说明:

-Ic:\Python27\include 用于指明头文件python.h所在的文件夹

-Lc:\Python27\libs 和-lpython27一起指明了python c api函数库所在的文件夹与库文件名称(Windows下为libpython27.a)

参考:

%20extensions

版权声明:本文为博主原创文章,未经博主允许不得转载。

往往为了自己的不能失败,而处心积虑前怕狼后怕虎,

实现python扩展的C API方法过程全纪录(windows)

相关文章:

你感兴趣的文章:

标签云: