一种跨平台移植python程序的方法及装置制造方法及图纸

技术编号:12741634 阅读:126 留言:0更新日期:2016-01-21 03:28
本发明专利技术提供一种跨平台移植python程序的方法及装置。方法包括:利用原始的python编译工具编译本地机的python程序,得到本地机版本的pgen程序;对原始的python编译工具的配置信息进行修改,使其更换与本地机不同平台的目标机的编译器;其中,修改后的python编译工具所生成的pgen程序属于目标机版本,无法在本地机上执行;在本地机上利用修改后的python编译工具编译目标机的python程序,并在该过程中使用本地机版本的pgen程序代替目标机的pgen程序在本地机上执行,从而得到目标机的python程序的编译文件;将所述目标机的python程序的编译文件导入目标机中或通过远程服务向目标机提供所述编译文件。本发明专利技术的方案实现了python程序的跨平台移植,有助于不同平台开发软件产品的效率。

【技术实现步骤摘要】

本专利技术涉及交叉编译领域,特别是一种跨平台移植python程序的方法及装置
技术介绍
目前,软件开发业界存在多种成熟的开发语言,新的语言吸收了传统语言的特点,可让软件开发更为敏捷。然而,在嵌入式设备中,由于成本限制与处理速度的瓶颈,大多数产品开发语言始终局限在C语言。C语言开发效率低,导致开发周期长,无法适应现今嵌入式产品快速更新换代的需求,因此,应用一种可以让开发周期缩短的语言十分必要。Python作为近年应用趋势越来越高的语言,具有动态解析,跨平台,公用库多,开发简易等优点,已经成为主流PC侧的标配语言。因此,研究一种将Python移植到嵌入式系统的方法是很有必要的。此外,工业领域的嵌入式设备的产品更新相比民用产品要慢很多,其存储空间不一定能够装得下Python程序。因此,在实现Python程序移植同时,还需要解决Python程序占用空间大的问题。
技术实现思路
本专利技术要解决的技术问题是提供一种跨平台移植python程序的方法及装置,能够实现了 python程序的跨平台移植,有助于不同平台开发软件产品的效率。为解决上述技术问题,本专利技术的实施例提供一种跨平台移植python程序的方法,包括:利用python的本地编译工具编译本地机的python程序,得到本地机版本的pgen程序;其中,本地机版本的pgen程序是所述本地编译工具在编译python程序过程中产生且必需执行的程序;在本地机上利用python的交叉编译工具编译目标机的python程序,并在该过程中使用本地机版本的Pgen程序代替目标机版本的pgen程序在本地机上执行,从而得到目标机的python程序的编译文件;其中,所述目标机版本的pgen程序由所述交叉编译工具在编译python程序过程中产生,且无法在本地机上执行;将所述目标机的python程序的编译文件导入目标机中或通过远程服务向目标机提供所述编译文件。其中,在本地机上利用修改后的python编译工具编译目标机的python程序的步骤包括:修改所述本地机版本的pgen程序的时间戳,并将其保存在本地机的目标文件夹中;在所述目标文件夹中使用修改后的python编译工具编译目标机的python程序;其中,修改后的python编译工具在所述目标文件夹中生成的目标机版本的pgen程序无法覆盖掉时间戳已修改的本地机版本的Pgen程序,从而在编译目标机的python程序中,本地机能够执行时间戳已修改的本地机版本的pgen程序,得到目标机的python程序的编译文件。其中,将所述编译文件导入目标机中的步骤前还包括:对所述编译文件进行裁剪,只保留其中的bin文件夹和lib文件夹;其中,所述bin文件夹用于保存目标机的python程序的二进制文件,所述lib文件夹用于保存目标机的python程序的库文件。其中,对所述编译文件进行裁剪的步骤还包括:删除lib文件夹中的.py类型和/或.pyo类型文件;和/或删除目标机的python程序的调试功能。其中,将所述编译文件导入目标机中的步骤前还包括:使用upx文件压缩器对所述编译文件进行压缩。其中,所述交叉编译工具能够编译具有读取压缩包能力的python程序;在使用upx文件压缩器对所述编译文件进行压缩的步骤后还包括:利用zip压缩软件对lib文件夹中的python库文件夹进行压缩,得到python库文件夹的zip压缩包;之后对源python库文件夹进行裁剪,只保留其中的os.pyc文件。此外,本专利技术还提供一种跨平台移植python程序的装置,包括:本地编译模块,用于利用python的本地编译工具编译本地机的python程序,得到本地机版本的pgen程序;其中,本地机版本的pgen程序是所述本地编译工具在编译python程序过程中产生且必需执行的程序;交叉编译模块,用于在本地机上利用python的交叉编译工具编译目标机的python程序,并在该过程中使用本地机版本的pgen程序代替目标机版本的pgen程序在本地机上执行,从而得到目标机的python程序的编译文件;其中,所述目标机版本的pgen程序由所述交叉编译工具在编译python程序过程中产生,且无法在本地机上执行;导入模块或远程服务模块;其中,所述导入模块用于将所述目标机的python程序的编译文件导入目标机中;所述远程服务模块,用于通过远程服务向目标机提供所述编译文件。其中,所述交叉编译模块包括:修改子模块,用于修改所述本地机版本的pgen程序的时间戳,并将其保存在本地机的目标文件夹中;交叉编译子模块,用于在所述目标文件夹中使用所述交叉编译工具编译目标机的python程序;其中,交叉编译工具在所述目标文件夹中生成的目标机版本的pgen程序无法覆盖掉时间戳已修改的本地机版本的Pgen程序,从而在编译目标机的python程序中,本地机能够执行时间戳已修改的本地机版本的pgen程序,得到目标机的python程序的编译文件。 其中,所述装置还包括:第一裁剪模块,用于在所述导入模块将所述编译文件导入目标机中的步骤前,对所述编译文件进行裁剪,只保留其中的bin文件夹和lib文件夹;其中,所述bin文件夹用于保存目标机的python程序的二进制文件,所述lib文件夹用于保存目标机的python程序的库文件。其中,所述第一裁剪模块包括:删除子模块,用于删除bin文件夹和lib文件夹中的.py类型和/或.pyo类型和/或调试信息类型的文件。其中,所述装置还包括:第一压缩模块,用于在所述导入模块将所述编译文件导入目标机前,使用upx文件压缩器对所述编译文件进行压缩。其中,所述交叉编译工具能够编译具有读取zip压缩包能力的python程序;所述装置还包括:第二压缩模块,用于在所述第一压缩模块使用upx文件压缩器对所述编译文件进行压缩后,利用zip压缩软件对lib文件夹中的python库文件夹进行压缩,得到python库文件夹的zip压缩包第二裁剪模块,用于在第二压缩模块得到python库文件夹的压缩包后,对源python库文件夹进行裁剪,只保留其中的os.pyc文件。本专利技术的上述技术方案的有益效果如下:本专利技术的方案实现了 python程序的跨平台移植,有助于不同平台开发软件产品的效率。【附图说明】图1为本专利技术中跨平台移植python程序的方法的步骤示意图;图2为本专利技术中压缩编译文件的执行流程图;图3为本专利技术中跨平台移植python程序的装置的结构示意图。【具体实施方式】为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。如图1所示,本专利技术提供一种跨平台移植python程序的方法,包括:步骤11,利用python的本地编译工具编译本地机的python程序,得到本地机版本的pgen程序;其中,本地机版本的pgen程序是所述本地编译工具在编译python程序过程中产生且必需执行的程序;步骤12,在本地机上利用python的交叉编译工具编译目标机的python程序,并在该过程中使用本地机版本的pgen程序代替目标机版本的pgen程序在本地机上执行,从而得到目标机的python程序的编译文件;其中,所述目标机版本的pgen程序由所述交叉编译工具在当前第1页1 2&nbs本文档来自技高网...

【技术保护点】
一种跨平台移植python程序的方法,其特征在于,包括:利用python的本地编译工具编译本地机的python程序,得到本地机版本的pgen程序;其中,本地机版本的pgen程序是所述本地编译工具在编译python程序过程中产生且必需执行的程序;在本地机上利用python的交叉编译工具编译目标机的python程序,并在该过程中使用本地机版本的pgen程序代替目标机版本的pgen程序在本地机上执行,从而得到目标机的python程序的编译文件;其中,所述目标机版本的pgen程序由所述交叉编译工具在编译python程序过程中产生,且无法在本地机上执行;将所述目标机的python程序的编译文件导入目标机中或通过远程服务向目标机提供所述编译文件。

【技术特征摘要】

【专利技术属性】
技术研发人员:严勇文
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1