文档库 最新最全的文档下载
当前位置:文档库 › 使用C++扩展Python功能的方法

使用C++扩展Python功能的方法

168

收稿日期:2018-03-22

作者简介:李先觉(1998—),男,汉族,江苏涟水人,中国石油大学(华东)化工院本科在读,研究方向:环保设备工程。

在应用软件中常见功能需求相同现象,只有少数功能要求具有较大差异性,所以针对需求变化构建独立版本,会使未来工作量提升。采用脚本语言编写程序虽然在一定程度上步入系统编程语言,但是将代码修改后,能够使配置运行更加方便,这也是系统语言所不具备的能力。在系统编程语言中能够将用户平台修改,提供二次开发平台。混合编程为一种新型编程语言,能够在不同领域广泛应用,将C++与Python语言功能融合,能够满足更多用户需求,因此值得实践研究。

1 C++与Python混合语言编程方式

1.1 python语言分析

python语言为一种解释性、交互性、动态性语言脚本,在二十世纪末期衍生,经过多年发展后,已经成为世界范围内应用最广泛的跨平台语言脚本。具有免费开源、可移植性、可嵌入性等特点。

1.2 免费开源

Python为FLoss自由开发软件源码之一,人们可以随意发布此软件,将代码阅读。并做出相应的改动,使其一部分完全应用于软件中。人们在使用python语言编写程序过程中。不需要考虑通过怎样方式将底层细节处理。

1.3 可移植性

Python自身本质问题,能够使其在不同平台上构建软件,其中包括Windows、MAC、Pocket PC等。Python能够提供类的继承等属性,将异常情况做到有效处理,选择最佳支持方法。

1.4 可嵌入性

正是由于python具备的可嵌入性,才能融入C++程序中,使程序脚本功能更加强大。若希望使关键代码运行速度更加迅速,可以将部分程序采取C++编写,然后融入到python程序重新使用。

2 C++扩展Python功能的方法

拓展以及嵌入能够使C++与python成为一个新的集合体。拓展方式需要将C++系统语言将python模块拓展,并在python中将这些模块功能利用。嵌入则是需要将python解释器融入于应用程序,使程序能够更好将python语言脚本解释。拓展以及嵌入需利用python 中C语言应用程序作为接口。C与python间交互方式为数据格式转换方式。

若系统为C++开发主系统,一般会采取两种方式命令python脚本。可以通过系统命令调用以及嵌入解释器直接调用方式。第一种方式将参数传递只可采取命令方式,为字符串方式,功能具有局限性。第二种方式将python内置高级数据系统,可以将不同复杂程序传输。并且第一种方式在系统运行过程中对python解释器有较高要

求,需要将python安装实现,在产品升级过程中不可实现。第二种方式则只需要提供动态数据库以及压缩包即可,程序部署较为简单,能够使产品更加方便升级。

所以若想将C++将python功能拓展,实现混合编程。主系统可采取动态库导出函数方式直接使用,做到无缝衔接。

2.1 python解释器

将C++应用于python功能中,需要装设python解释器。具体步骤为:构建python运行环境,将python解释器功能初始化,对系统工作路径进行设置,将设定脚本导入其中,将参数输入实现数据转换,调用函数,对返回值进行检查,将所返回值进行转换,此解释器构建完毕。

2.2 python运行环境要求

相对于不同版本python应用程序,不要不同python动态库,常

用python版本中含有Release版本python动态库,而Debug版python 动态库则需要自行设定python源码。将动态库排除,需要将所用python库压缩成为一个zip文件,备用。在此环节工作中可以采取py2exe软件打包,或者采取直接压缩目录完成。

2.3 将python解释器初始化

将pythonC语言中API函数Py Initial-ize可以将python解释器初始化完成。

2.4 构建系统工作路径

将python中C语言API函数PyRun-SimpleString调用后,将系统路径设定,为后续脚本运行做好基础。

2.5 将自定义脚本导入

将python的C语言API函数PyImport-ImportModule应用与自定义python脚本中,其中存在所有使用代码。

2.6 将参数数据转换

将上述调用的pythonC语言API函数Py-Build Value C++数据输入参数转化为python能够接受的参数。此环节也是整个环节中工作量最大的部分,也是环节中最为重要的部分,贯穿于整个环节,对最终效果能够产生影响。

2.7 函数应用

将python中C语言API函数pyObject CallOnject应用于自定义

脚本中,并将控制权交付于python解释器中,等到python脚本函数工作结束后返回。对pyObject CallOnject函数返回值做出检测,根据预先设定,将返回值检测,对结果进行处理。

2.7.1 返回值数据转换

根据返回值将结果转换为++数据类型。根据实际编码将任务执行一次。在其他步骤中将应用程序调用并在python脚本执行,后

使用C++扩展Python 功能的方法

李先觉

(中国石油大学(华东),山东青岛 266580)

摘要:人工智能技术发展、大数据广泛应用,使C++与Python混合后,能够实现更多功能,可缩短高性能语言使用中模型检测时间。将脚本存在问题更加方便的解决,使人们在生活或者工作中能够将任务顺利开展,为人类带来更多方便。

关键词:C++;Python功能;方法中图分类号:TP312文献标识码:A 文章编号:1007-9416(2018)05-0168-02

设计开发

DOI:10.19695/https://www.wendangku.net/doc/9015208605.html,12-1369.2018.05.80

相关文档