- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
将Python嵌入到C_C++应用程序中的编程方法.pdf
武汉市经济管理干部学院学报
2002年6月
CADRE’SCOLLEGE
JOURNALOFWUHANECONOMICADMINI咖A1rION
何 炯
(西南交通大学计算机与通信工程学院,四川成都 610031)
摘要:Python是一种面向对象的语言。本文介绍了怎样在不同的层次上将Python编译器
以完成某些Python特有的功能。文章也讲述了如何扩展嵌入的Python使其获得应用程序本身的
功能。最后,讲述了怎样使链接到静态库的应用程序获得动态扩展。
关键词:Python;C;C++;嵌入
中图分类号_.TP312 文献标识码:A
一、概述 代替用户管理内存和载入文件。
在嵌入Python时,首先要在主程序里初始化Py— 三、低层次上的嵌入
t}珊编译器。以后则需要调用跨Initialize()函数,高层次的接口使得用户可以在应用中运行任意
有一些可选的命令可向Py也。n传递命令行参数,以后 的Python代码,但在某些情况下,这又会显得十
就可在应用的任何—个地方调用编译器。 分繁琐。比如交换数据的值。当要做这类事的时
二、高层次上的嵌入 候,需要用到底层调用。底层调用可以做到:
进行Python嵌入的一种最简单的方法就是调 a.把数据从C传递到Python。b.用传递过来
用高层接口。目的是在不与应用直接交互的情况下 的参数进行Python接口函数调用。c.把调用的结
执行Python脚本,用在一些针对文件的操作上。 果只从Python传递到C。
#includePython.h 四、低层次嵌入的具体方法
intmain(int
argc,char*argv[]){以下的程序执行Python脚本中的函数。与高
Py—Initialize(); 层接口中一样,Python编译器不直接与应用交互。
time #includePython.h
importtime,
PyRun—SimpleString(”from
int
main(int
crime is’,ctime(time())n,,); argc,char*argv[])
nprint7Today
{
Py—Finalize();
retum0;}
PyObject。pAms.*Value;
以上的例子首先用P步Initialize()初始化Pythoninti,result;
编译器。后面的语句用来打印日期和时间,最后,用 if(argc3){
fprintf(stderr,Usage:callpythonfile
Py-Fmalize()关闭编译器。而在实际应用中,常常需 funm蛐e[args]\0’);
return
1;
要从别的地方得到Python脚本,如果是要从一个文件
文档评论(0)