python与c集成方法的初探

python与c集成方法的初探

ID:15404980

大小:53.00 KB

页数:5页

时间:2018-08-03

python与c集成方法的初探_第1页
python与c集成方法的初探_第2页
python与c集成方法的初探_第3页
python与c集成方法的初探_第4页
python与c集成方法的初探_第5页
资源描述:

《python与c集成方法的初探》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、软件安装1、Python-2.3.3.exe(注意:版本有关系,有些高版本有问题)2、VC6.0二、运行环境配置1、本文默认Python的安装目录为:C:/Python23;在VCIDE中Tools->Options->Directories配置Includefiles为:C:/Python23/include;Libraryfiles为:C:/Python23/libs;2、如需要Debug版本的要下载python23_d.lib和python23_d.dll这两个文件,也可以下载Python源码来编译获得,具体可查阅相应文档。三、C调用Python1、T

2、est.c源码1intmain(intargc,char**argv)2{3//初始化Python4//在使用Python系统前,必须使用Py_Initialize对其5//进行初始化。它会载入Python的内建模块并添加系统路6//径到模块搜索路径中。这个函数没有返回值,检查系统7//是否初始化成功需要使用Py_IsInitialized。8PyObject*pName,*pModule,*pDict,*pFunc,*pArgs;9Py_Initialize();10//检查初始化是否成功11if(!Py_IsInitialized())12{13return

3、-1;14}15//添加当前路径16//把输入的字符串作为Python代码直接运行,返回017//表示成功,-1表示有错。大多时候错误都是因为字符串18//中有语法错误。19PyRun_SimpleString("importsys");20PyRun_SimpleString("sys.path.append('./')");21//载入名为pytest的脚本22pName=PyString_FromString("pytest");23pModule=PyImport_Import(pName);24if(!pModule)25{26printf("can'

4、tfindpytest.py");1getchar();2return-1;3}4pDict=PyModule_GetDict(pModule);5if(!pDict)6{7return-1;8}9//找出函数名为add的函数10pFunc=PyDict_GetItemString(pDict,"vcadd");11if(!pFunc

5、

6、!PyCallable_Check(pFunc))12{13printf("can'tfindfunction[vcadd]");14getchar();15return-1;16}17//参数进栈18*pArgs;19pArg

7、s=PyTuple_New(2);20//PyObject*Py_BuildValue(char*format,...)21//把C++的变量转换成一个Python对象。当需要从22//C++传递变量到Python时,就会使用这个函数。此函数23//有点类似C的printf,但格式不同。常用的格式有24//s表示字符串,25//i表示整型变量,26//f表示浮点数,27//O表示一个Python对象。28PyTuple_SetItem(pArgs,0,Py_BuildValue("l",3));29PyTuple_SetItem(pArgs,1,Py_Build

8、Value("l",4));30//调用Python函数31PyObject_CallObject(pFunc,pArgs);32//下面这段是查找函数foo并执行foo33pFunc=PyDict_GetItemString(pDict,"vcfoo");34if(!pFunc

9、

10、!PyCallable_Check(pFunc))35{36printf("can'tfindfunction[vcfoo]");37getchar();38return-1;39}40pArgs=PyTuple_New(1);41PyTuple_SetItem(pArgs,0,Py

11、_BuildValue("l",2));//42PyObject_CallObject(pFunc,pArgs);43Py_DECREF(pName);44Py_DECREF(pArgs);1Py_DECREF(pModule);2//关闭Python3Py_Finalize();4return0;5}2、pytest.py源码6defadd(a,b):7print"inpythonfunctionadd"8print"a="+str(a)9print"b="+str(b)10print"ret="+str(a+b)11return3、运行设置将pytest.p

12、y文件与C工程编译的ex

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。