[发明专利]一种跨平台移植python程序的方法及装置在审
申请号: | 201410339009.5 | 申请日: | 2014-07-16 |
公开(公告)号: | CN105260169A | 公开(公告)日: | 2016-01-20 |
发明(设计)人: | 严勇文 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京银龙知识产权代理有限公司 11243 | 代理人: | 许静;黄灿 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 平台 移植 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程序过程中产生,且无法在本地机上执行;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410339009.5/2.html,转载请声明来源钻瓜专利网。