System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于软件更新,具体涉及基于pyinstaller平台的软件构建更新方法及系统。
技术介绍
1、pyinstaller 是一个用于将 python 应用程序打包成可执行文件的工具,它允许将python代码、依赖项和解释器打包成一个独立的可执行文件,使得python应用程序可以在没有安装python解释器的计算机上运行。
2、pyinstaller可以帮助 python开发者将他们的应用程序打包为可执行文件,从而扩展了应用程序的分发和部署选项。它在未来可能会继续发展和改进,以适应不断变化的需求。
3、在pyinstaller技术广泛应用的情况下,打包技术以及软件更新技术,也需要一定的进步。
4、然而,现有的软件更新方式,通常为两种
5、1.全量更新,对现有软件包进行覆盖,这种方式效率较低,有时候会发生文件冲突的问题难以解决。
6、2.增量更新,会存在多个版本共存的情况,有时需要修改软件包的时候,不容易判断哪一个才是当前使用中的版本。
7、结合全量打包技术,在实际操作的情况下,通常会因为一个很小的改动,需要进行大范围的文件更新操作,十分不便。
8、因此,设计一种能够大大提高软件更新的效率,降低更新系统开销的基于pyinstaller平台的软件构建更新方法及系统,就显得十分重要。
技术实现思路
1、本专利技术是为了克服现有技术中,现有的软件更新方式,存在更新效率低下且升级过程产生的系统开销大的问题
2、为了达到上述专利技术目的,本专利技术采用以下技术方案:
3、基于pyinstaller平台的软件构建更新方法,包括如下步骤;
4、s1,pyinstaller平台执行打包脚本并开始打包;
5、s2,打包完成后,生成软件根目录以及软件所需文件;
6、s3,读取软件根目录下所有文件,并根据文件生成摘要,再以列表格式写入到摘要文件;
7、s4,指定原版本生成升级包,并读取原版本摘要文件;
8、s5,将步骤s3中写好的摘要文件与步骤s4读取的原版本摘要文件内容进行对比,得出发生变更的文件列表,并生成到新目录作为升级包;
9、s6,在原版本软件上运行升级程序并指定对应的升级包;
10、s7,升级程序并加载升级包,根据升级包内容替换本地文件;
11、s8,本地文件替换完成,即升级完成。
12、作为优选,步骤s1中的打包,具体采用标准安装包打包过程,具体步骤如下:
13、s11,pyinstaller平台启动打包程序;
14、s12,基于python语言编译项目的源代码;
15、s13,根据编辑的项目源代码,复制系统库文件和静态文件;
16、s14,遍历系统库文件和静态文件的文件列表;
17、s15,对文件列表采用摘要算法生成摘要信息;
18、s16,将摘要信息保存到文件中,再将所述文件保存到软件目录;
19、s17,将软件目录打包为软件安装包。
20、作为优选,步骤s13中,所述系统库文件包括系统库中的so文件和dll文件。
21、作为优选,步骤s13中,所述静态文件包括项目中的静态资源。
22、作为优选,步骤s15中,所述摘要算法具体采用md5算法。
23、作为优选,步骤s17中所述的软件安装包,可用于直接提供给用户进行软件更新安装。
24、作为优选,步骤s5还包括如下步骤:
25、s51,遍历两个摘要文件内的摘要信息列表并进行比对,若文件在两个摘要文件内的信息一致,则认为对应文件无需更新,跳过并继续对比下一个文件;若文件在两个摘要文件内的信息不一致,则认为对应文件有更新,将对应文件添加到升级包中;
26、s52,全部文件比对完成后,获得所有的文件差异作为升级包提供给客户升级。
27、本专利技术还提供了基于pyinstaller平台的软件构建更新系统包括;
28、标准安装包生成模块,用于通过pyinstaller平台执行打包脚本并开始打包;打包完成后,生成软件根目录以及软件所需文件;读取软件根目录下所有文件,并根据文件生成摘要,再以列表格式写入到摘要文件;
29、增量升级包生成模块,用于指定原版本生成升级包,并读取原版本摘要文件;将标准安装包生成模块中写好的摘要文件与读取的原版本摘要文件内容进行对比,得出发生变更的文件列表,并生成到新目录作为升级包;
30、升级模块,用于在原版本软件上运行升级程序并指定对应的升级包,同时升级程序并加载升级包,根据升级包内容替换本地文件,完成升级。
31、本专利技术与现有技术相比,有益效果是:(1)本专利技术通过文件摘要算法(md5)罗列出软件包内全部文件的摘要信息,再通过比对摘要信息,获取差异文件,将差异文件单独打包成软件增量升级包,能够大大降低软件升级包的体积,提高软件的升级速度,降低升级过程产生的系统开销,改进了现有方案的不足;(2)本专利技术提出了增量升级概念,避免一些体积较大的软件项目,因为升级产生的资源开销,不需要更新的文件,不做替换或者覆盖的操作,避免了大量的系统io操作,只对匹配后需要升级的文件进行更新;(3)本专利技术在用户体验方面,增量升级包体积大大降低,用户也不再需要下载完整的软件包,降低了带宽流量的使用,并且降低了的软件更新的时间。
本文档来自技高网...【技术保护点】
1.基于Pyinstaller平台的软件构建更新方法,其特征在于,包括如下步骤;
2.根据权利要求1所述的基于Pyinstaller平台的软件构建更新方法,其特征在于,步骤S1中的打包,具体采用标准安装包打包过程,具体步骤如下:
3.根据权利要求2所述的基于Pyinstaller平台的软件构建更新方法,其特征在于,步骤S13中,所述系统库文件包括系统库中的so文件和dll文件。
4.根据权利要求2所述的基于Pyinstaller平台的软件构建更新方法,其特征在于,步骤S13中,所述静态文件包括项目中的静态资源。
5.根据权利要求2所述的基于Pyinstaller平台的软件构建更新方法,其特征在于,步骤S15中,所述摘要算法具体采用md5算法。
6.根据权利要求2所述的基于Pyinstaller平台的软件构建更新方法,其特征在于,步骤S17中所述的软件安装包,可用于直接提供给用户进行软件更新安装。
7.根据权利要求1所述的基于Pyinstaller平台的软件构建更新方法,其特征在于,步骤S5还包括如下步骤:
...【技术特征摘要】
1.基于pyinstaller平台的软件构建更新方法,其特征在于,包括如下步骤;
2.根据权利要求1所述的基于pyinstaller平台的软件构建更新方法,其特征在于,步骤s1中的打包,具体采用标准安装包打包过程,具体步骤如下:
3.根据权利要求2所述的基于pyinstaller平台的软件构建更新方法,其特征在于,步骤s13中,所述系统库文件包括系统库中的so文件和dll文件。
4.根据权利要求2所述的基于pyinstaller平台的软件构建更新方法,其特征在于,步骤s13中,所述静态文件包括项目中的静态资源。
5.根据权利要求2所述的基于pyinst...
【专利技术属性】
技术研发人员:王秋园,孙林君,高扬,
申请(专利权)人:杭州实在智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。