CN115328526A - 一种依赖包的更新方法、装置、设备及存储介质 - Google Patents

一种依赖包的更新方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115328526A
CN115328526A CN202210997544.4A CN202210997544A CN115328526A CN 115328526 A CN115328526 A CN 115328526A CN 202210997544 A CN202210997544 A CN 202210997544A CN 115328526 A CN115328526 A CN 115328526A
Authority
CN
China
Prior art keywords
dependency
package
updating
platform
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210997544.4A
Other languages
English (en)
Inventor
刘彤
何峰
王宇航
曾鹏轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Siming Qichuang Technology Co ltd
Original Assignee
Beijing Siming Qichuang Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Siming Qichuang Technology Co ltd filed Critical Beijing Siming Qichuang Technology Co ltd
Priority to CN202210997544.4A priority Critical patent/CN115328526A/zh
Publication of CN115328526A publication Critical patent/CN115328526A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种依赖包的更新方法、装置、设备及存储介质。该方法包括:根据开发配置信息确定待更新依赖模块的至少一个更新平台和该更新平台对应的期望版本;获取所述待更新依赖模块的期望版本,并将所述待更新依赖模块的期望版本分别打包为各更新平台的依赖包;生成各更新平台的依赖包的下载地址,并根据所述各更新平台的依赖包的下载地址和各更新平台对应的期望版本生成更新配置信息。本发明实施例可以提高依赖包的安装和打包效率。

Description

一种依赖包的更新方法、装置、设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种依赖包的更新方法、装置、设备及存储介质。
背景技术
在教学领域,Python作为一种面向对象编程的解释型语言,已成为多数平台上写脚本和快速开发应用的编程语言。教学领域中每学期预制固定的教学内容,大多数场景是动态化,频繁变更的。由于作为Python高度依赖和使用外部库的语言,在长时间的教学中需要频繁对教学客户端软件中的python库进行更新。
教学客户端软件中内嵌python文件夹,该文件夹下面有python解释器用到的python库,其通常需要手动在开源网站中下载,然后放入到客户端中。python文件夹会随客户端发布,即只要有任何的python库的更新,都要发布一个新的客户端版本进行全量更新,缺乏单独、动态更新库的能力。而且不同内核平台对应python库的版本不同,有时需要准备多台机器分别获取不同版本的python库,十分繁琐。
发明内容
本发明提供了一种依赖包的更新方法、装置、设备及存储介质,以提高依赖包的安装和打包效率。
根据本发明的一方面,提供了一种依赖包的更新方法,包括:
根据开发配置信息确定待更新依赖模块的至少一个更新平台和该更新平台对应的期望版本;
获取所述待更新依赖模块的期望版本,并将所述待更新依赖模块的期望版本分别打包为各更新平台的依赖包;
生成各更新平台的依赖包的下载地址,并根据所述各更新平台的依赖包的下载地址和各更新平台对应的期望版本生成更新配置信息。
根据本发明的另一方面,提供了一种依赖包的更新方法,包括:
解析更新配置信息,得到各更新平台的依赖包的下载地址和各更新平台对应的期望版本;
根据所述各更新平台对应的期望版本,确定当前更新平台的依赖包的目标期望版本;
若所述当前更新平台不存在所述依赖包,或所述依赖包的当前版本与所述目标期望版本不一致,则根据所述当前更新平台的依赖包的下载地址下载并安装所述目标期望版本的依赖包。
根据本发明的另一方面,提供了一种依赖包的更新装置吗,包括:
期望版本确定模块,用于根据开发配置信息确定待更新依赖模块的至少一个更新平台和该更新平台对应的期望版本;
期望版本打包模块,用于获取所述待更新依赖模块的期望版本,并将所述待更新依赖模块的期望版本分别打包为各更新平台的依赖包;
期望版本发布模块,用于生成各更新平台的依赖包的下载地址,并根据所述各更新平台的依赖包的下载地址和各更新平台对应的期望版本生成更新配置信息。
根据本发明的另一方面,提供了一种依赖包的更新装置,包括:
期望版本解析模块,用于解析更新配置信息,得到各更新平台的依赖包的下载地址和各更新平台对应的期望版本;
更新版本确定模块,用于根据所述各更新平台对应的期望版本,确定当前更新平台的依赖包的目标期望版本;
期望版本更新模块,用于若所述当前更新平台不存在所述依赖包,或所述依赖包的当前版本与所述目标期望版本不一致,则根据所述当前更新平台的依赖包的下载地址下载并安装所述目标期望版本的依赖包。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的依赖包的更新方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的依赖包的更新方法。
本发明实施例通过开发配置信息来自动化安装和打包各个更新平台对应期望版本的依赖包,并生成更新配置信息用于指示用户端对教学软件进行非全量更新,动态更新教学软件内的python库,无需重新下载教学软件,同时使用跨平台方案,在一台主机上批处理和安装各个更新平台的依赖包,提高依赖包的安装和打包效率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是根据本发明一实施例提供的一种依赖包的更新方法的流程图;
图1B是根据本发明一实施例提供的一种开发配置信息的示意图;
图1C是根据本发明一实施例提供的一种更新配置信息的示意图;
图2是根据本发明又一实施例提供的一种依赖包的更新方法的流程图;
图3是根据本发明又一实施例提供的一种依赖包的更新方法的流程图;
图4是根据本发明又一实施例提供的一种依赖包的更新系统的示意图;
图5是根据本发明又一实施例提供的一种依赖包的更新装置的结构示意图;
图6是根据本发明又一实施例提供的一种依赖包的更新装置的结构示意图;
图7是实现本发明实施例的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1A为本发明一实施例提供的一种依赖包的更新方法的流程图,本实施例可适用于工作人员在开发主机中编写开发配置信息,由开发主机中自动化发布python依赖的工具读取开发配置信息并生成各期望版本依赖包和更新配置信息,供用户下载以对用户客户端中教学软件进行非全量更新的情况,该方法可以由依赖包的更新装置来执行,该装置可以采用硬件和/或软件的形式实现,该装置可配置于具备相应数据处理能力的电子设备中。如图1A所示,该方法包括:
S110、根据开发配置信息确定待更新依赖模块的至少一个更新平台和该更新平台对应的期望版本。
其中,所述依赖模块可以是python库,则依赖包为相应python库安装打包后的python包。待更新依赖模块是用户客户端教学软件中缺少的,或者因版本过低而需要更新的依赖模块,例如某一具体的python库。开发配置信息可视为由开发人员撰写的一张清单(A),清单中记载了需要安装依赖模块的各个更新平台。由于python库的类型是多种多样的,每个库对python解释器版本,系统版本,CPU架构有着不一样的要求。因为,python虽然类似于脚本语言,但其本身是允许其库使用外部二进制文件运行并调用的,所以这就涉及到了平台&处理器相关的兼容性。一般来说有三种平台和处理器架构需要兼容,也是目前大部分用户所使用的,分别为:1)Darwin,darwin内核(可以理解为macos系统,其系统内核为darwin),处理器intel-64位架构,系统版本11之前。2)darwinBigsur,darwin内核,处理器为arm-64位架构,系统版本为11以上,一般称为m1。3)Windows,Windows NT内核版本6.0以上,一般称为windows7以上系统。处理器架构32,64位。这三种平台均可作为更新平台,有时同一python库在不同更新平台需要更新的版本并非完全一致,因此开发配置信息还记载了python库在各个平台中待更新的期望版本。
具体的,自动化发布python依赖的工具,可以运行在windows,darwin,linux等平台,其主要供内部负责开发的工作人员管理和更新教学软件中使用的python库。工作人员根据教学软件的开发需要编写开发配置信息,作为工具的输入信息,工具读取信息以获得需要添加的python库的信息,并开始解析输入信息中每个库对应各平台的期望版本。
示例性的,图1B是本发明一实施例提供的一种开发配置信息的示意图。其中,keyName这个json文件的根节点下的每个key(对应图1B中的lxml和pygame)代表要加入的库名称。expectedVersions为lxml和pygame两个库各自支持的更新平台。这个下面对应的是各个平台的版本,目前由于系统兼容性和python版本等原因,需要考虑三个平台,windows,darwin(python编译器3.7.4的mac用户),darwinBigsur(python编译器3.9.0版本的mac用户)。windows的用户一定用的python3.7.4编译器版本。使用latest标签表示的是当前平台下的最新版本,也就意味着mac和windows下的版本号可能不是一个,这个是pip的原始逻辑。开发配置信息中包含的只是「输入信息」,表示想要添加的python库,以及对应的平台和版本分别是什么。例如,对于pygame这一python库,其在三个不同更新平台的期望版本分别为1.9.6版本,高于1.9.6的版本和2.0.0版本。
S120、获取所述待更新依赖模块的期望版本,并将所述待更新依赖模块的期望版本分别打包为各更新平台的依赖包。
具体的,工具中内置pip模块,在确认需要下载的依赖模块的各期望版本后,工具会通过该pip模块下载对应期望版本的依赖模块,并在下载完成后,使用工具中内置的安装工具对各个期望版本的依赖模块进行安装得到一个或多个期望版本的安装包,每个期望版本的安装包对应一个或多个更新平台。
S130、生成各更新平台的依赖包的下载地址,并根据所述各更新平台的依赖包的下载地址和各更新平台对应的期望版本生成更新配置信息。
具体的,将各个更新平台对应期望版本的依赖包进行上传,得到各个更新平台对应期望版本依赖包的下载地址,根据下载地址生成一个和依赖包对应的下载信息字典,它是可以被任一客户端使用并下载到计算机内通过官方解释器运行的清单B,又称为更新配置信息。在变更更新配置信息后,即可将更新后的新更新配置信息发布上线,后续会更新到用户端。
在用户端拉取上述更新配置信息,用户端会对更新配置信息进行解析,根据开放配置信息确定需要更新的依赖包以及依赖包在各个更新平台中的期望版本。用户端根据其所在的当前更新平台,在开发配置信息中确定与当前更新平台相匹配的目标期望版本。用户端对教学软件的python文件夹下已有的依赖包进行检索,确定用户端是否存在待更新的依赖包,以及该依赖包在python文件夹下的当前实际版本。假如本地没有该依赖包,或者本地已有该依赖包但该依赖包的当前实际版本不符合更新配置信息中规定的该更新平台的当前目标期望版本,就根据开发配置信息中记录的该更新平台对应期望版本依赖包的下载地址下载对应平台的依赖包到本地的python文件夹。
示例性的,图1C是本发明一实施例提供的一种更新配置信息的示意图。其中,对于numpy这一依赖包,其在windows、darwin和darwinBigSur三个更新平台的期望版本分别是1.19.2、1.19.2和1.19.5,并在更新配置信息中分别给出各个更新平台对应期望版本的下载地址。
本发明实施例通过开发配置信息来自动化安装和打包各个更新平台对应期望版本的依赖包,并生成更新配置信息用于指示用户端对教学软件进行非全量更新,动态更新教学软件内的依赖包,无需重新下载教学软件,同时使用跨平台方案,在一台主机上批处理和安装各个更新平台的依赖包,提高依赖包的安装和打包效率。
图2为本发明又一实施例提供的一种依赖包的更新方法的流程图,本实施例在上述实施例的基础上进行了优化改进。如图2所示,该方法包括:
S210、根据开发配置信息确定待更新依赖模块的至少一个更新平台和该更新平台对应的期望版本。
S220、获取所述待更新依赖模块的期望版本。
S230、为各更新平台分别建立依赖包存储空间,并将所述待更新依赖模块的期望版本分别安装到各依赖包存储空间;将各依赖包存储空间中安装完成的待更新依赖模块的期望版本进行打包,得到各更新平台的依赖包。
具体的,在工作人员的开发主机中预先建立多个文件夹,每个文件夹对应一个更新平台,作为该更新平台的依赖包存储空间。在下载完依赖模块后,使用工具中的安装程序解压wheel文件格式的依赖模块到相应的文件夹,完成对依赖模块的安装。将安装完成后的依赖模块进行打包,可将其打包为常见的zip等压缩文件格式,从而得到各更新平台对应期望版本的依赖包。
可选的,所述将将所述待更新依赖模块的期望版本分别安装到各依赖包存储空间包括:
将各更新平台的待更新模块的期望版本,和该更新平台的依赖包存储空间进行关联;将待更新模块的期望版本分别安装到关联的依赖包存储空间。
具体的,以往更新依赖模块需要到pypi官网中下载,并准备多台部署不同更新平台的机器分别获取上述依赖模块,使用pip命令分别在多台机器上安装,这就导致获取包的过程非常繁琐,尤其是手动安装的过程过于麻烦。本发明中工具安装在一台主机上,在该主机中为各个安装平台划分对应的依赖包存储空间,通过将依赖包存储空间和更新平台的依赖包进行关联,将各个更新平台的依赖模块安装到关联的依赖包存储空间中。如此,仅需一台主机即可实现对不同更新平台对应依赖模块的安装打包,无需同时准备多台不同更新平台的机器,简化依赖模块的安装和打包流程。
S240、将任一更新平台对应期望版本的依赖包上传运营支撑系统平台,得到该更新平台的依赖包的下载地址。
具体的,将打包完成的依赖包上传到运营支撑系统平台(Operation SupportSystems,OSS),生成可供外网下载地址。每个下载地址对应一个更新平台的期望版本依赖包。例如存在三个不同的更新平台的依赖包,则需要生成三个不同的下载地址,各下载地址用于从OSS下载与各个更新平台对应的期望版本的依赖包。
S250、根据所述各更新平台的依赖包的下载地址和各更新平台对应的期望版本生成更新配置信息。
本发明实施例通过将依赖包存储空间和更新平台的依赖包一一关联,将各个更新平台的依赖模块安装到关联的依赖包存储空间中。仅需一台主机即可实现对不同更新平台对应依赖模块的安装打包,无需同时准确多台不同更新平台的机器,进一步简化依赖模块的安装和打包流程。
图3为本发明又一实施例提供的一种依赖包的更新方法的流程图,本实施例可适用于用户客户端获取由自动化发布python依赖的工具生成的更新配置信息,并根据更新配置信息确定用户客户端的当前平台所需要下载的依赖包的期望版本,并根据下载的期望版本对当前平台的本地依赖包进行更新的情况,该方法可以由依赖包的更新装置来执行,该装置可以采用硬件和/或软件的形式实现,该装置可配置于具备相应数据处理能力的电子设备中。如图3所示,该方法包括:
S310、解析更新配置信息,得到各更新平台的依赖包的下载地址和各更新平台对应的期望版本;
S320、根据所述各更新平台对应的期望版本,确定当前更新平台的依赖包的目标期望版本;
S330、若所述当前更新平台不存在所述依赖包,或所述依赖包的当前版本与所述目标期望版本不一致,则根据所述当前更新平台的依赖包的下载地址下载并安装所述目标期望版本的依赖包。
本发明实施例通过根据更新配置信息来确定当前更新平台的期望版本,并根据更新配置信息中提供的下载地址对期望版本的依赖包进行下载安装,动态热更新教学软件中依赖包,无需对教学软件进行全量下载更新。
图4是根据本发明又一实施例提供的一种依赖包的更新系统的示意图,该系统由开发客户端410和用户客户端420组成,用于执行本发明任意实施例所提供的依赖包的更新方法。其中,
所述开发客户端410,用于根据开发配置信息确定待更新依赖模块的至少一个更新平台和该更新平台对应的期望版本;获取所述待更新依赖模块的期望版本,并将所述待更新依赖模块的期望版本分别打包为各更新平台的依赖包;生成各更新平台的依赖包的下载地址,并根据所述各更新平台的依赖包的下载地址和各更新平台对应的期望版本生成更新配置信息;
所述用户客户端420,用于解析更新配置信息,得到各更新平台的依赖包的下载地址和各更新平台对应的期望版本;根据所述各更新平台对应的期望版本,确定当前更新平台的依赖包的目标期望版本;若所述当前更新平台不存在所述依赖包,或所述依赖包的当前版本与所述目标期望版本不一致,则根据所述当前更新平台的依赖包的下载地址下载并安装所述目标期望版本的依赖包。
本发明实施例在开发客户端中通过开发配置信息来自动化安装和打包各个更新平台对应期望版本的依赖包,并生成更新配置信息,并由用户客户端根据开发客户端提供的更新配置信息对教学软件中期望版本的依赖包进行非全量更新,动态更新教学软件内的python库,无需用户客户端重新下载教学软件,同时使用跨平台方案,在一台开发端主机上批处理和安装各个更新平台的依赖包,提高依赖包的安装和打包效率。
图5为本发明又一实施例提供的一种依赖包的更新装置的结构示意图。如图5所示,该装置包括:
期望版本确定模块510,用于根据开发配置信息确定待更新依赖模块的至少一个更新平台和各更新平台对应的期望版本;
期望版本打包模块520,用于获取所述待更新依赖模块的期望版本,并将所述待更新依赖模块的期望版本分别打包为各更新平台的依赖包;
期望版本发布模块530,用于生成各更新平台的依赖包的下载地址,并根据所述各更新平台的依赖包的下载地址和各更新平台对应的期望版本生成更新配置信息。
本发明实施例所提供的依赖包的更新装置可执行本发明任意实施例所提供的依赖包的更新方法,具备执行方法相应的功能模块和有益效果。
可选的,期望版本打包模块520包括:
期望版本安装单元,用于为各更新平台分别建立的依赖包存储空间,并将所述待更新依赖模块的期望版本分别安装到各依赖包存储空间;
期望版本打包单元,用于将各依赖包存储空间中安装完成的待更新依赖模块的期望版本进行打包,得到各更新平台的依赖包。
可选的,所述期望版本安装单元,具体用于:将各更新平台的待更新模块的期望版本,和该更新平台的依赖包存储空间进行关联;将待更新模块的期望版本分别安装到关联的依赖包存储空间。
可选的,期望版本发布模块530包括:
期望版本上传单元,用于将任一更新平台对应期望版本的依赖包上传运营支撑系统平台,得到该更新平台的依赖包的下载地址。
可选的,依赖模块包括python库,所述依赖包包括python包
进一步说明的依赖包的更新装置也可执行本发明任意实施例所提供的依赖包的更新方法,具备执行方法相应的功能模块和有益效果。
图6为本发明又一实施例提供的一种依赖包的更新装置的结构示意图。如图6所示,该装置包括:
期望版本解析模块610,用于解析更新配置信息,得到各更新平台的依赖包的下载地址和该更新平台对应的期望版本;
更新版本确定模块620,用于根据所述各更新平台对应的期望版本,确定当前更新平台的依赖包的目标期望版本;
期望版本更新模块630,用于若所述当前更新平台不存在所述依赖包,或所述依赖包的当前版本与所述目标期望版本不一致,则根据所述当前更新平台的依赖包的下载地址下载并安装所述目标期望版本的依赖包。
本发明实施例所提供的依赖包的更新装置可执行本发明任意实施例所提供的依赖包的更新方法,具备执行方法相应的功能模块和有益效果。
图7示出了可以用来实施本发明的实施例的电子设备70的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图7所示,电子设备70包括至少一个处理器71,以及与至少一个处理器71通信连接的存储器,如只读存储器(ROM)72、随机访问存储器(RAM)73等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器71可以根据存储在只读存储器(ROM)72中的计算机程序或者从存储单元78加载到随机访问存储器(RAM)73中的计算机程序,来执行各种适当的动作和处理。在RAM 73中,还可存储电子设备70操作所需的各种程序和数据。处理器71、ROM72以及RAM 73通过总线74彼此相连。输入/输出(I/O)接口75也连接至总线74。
电子设备70中的多个部件连接至I/O接口75,包括:输入单元76,例如键盘、鼠标等;输出单元77,例如各种类型的显示器、扬声器等;存储单元78,例如磁盘、光盘等;以及通信单元79,例如网卡、调制解调器、无线通信收发机等。通信单元79允许电子设备70通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器71可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器71的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器71执行上文所描述的各个方法和处理,例如依赖包的更新方法。
在一些实施例中,依赖包的更新方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元78。在一些实施例中,计算机程序的部分或者全部可以经由ROM 72和/或通信单元79而被载入和/或安装到电子设备70上。当计算机程序加载到RAM 73并由处理器71执行时,可以执行上文描述的依赖包的更新方法的一个或多个步骤。备选地,在其他实施例中,处理器71可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行依赖包的更新方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种依赖包的更新方法,其特征在于,所述方法包括:
根据开发配置信息确定待更新依赖模块的至少一个更新平台和该更新平台对应的期望版本;
获取所述待更新依赖模块的期望版本,并将所述待更新依赖模块的期望版本分别打包为各更新平台的依赖包;
生成各更新平台的依赖包的下载地址,并根据所述各更新平台的依赖包的下载地址和各更新平台对应的期望版本生成更新配置信息。
2.根据权利要求1所述的方法,其特征在于,所述将所述待更新依赖模块的期望版本分别打包为各更新平台的依赖包,包括:
为各更新平台分别建立依赖包存储空间,并将所述待更新依赖模块的期望版本分别安装到各依赖包存储空间;
将各依赖包存储空间中安装完成的待更新依赖模块的期望版本进行打包,得到各更新平台的依赖包。
3.根据权利要求2所述的方法,其特征在于,所述将所述待更新依赖模块的期望版本分别安装到各依赖包存储空间包括:
将各更新平台的待更新模块的期望版本,和该更新平台的依赖包存储空间进行关联;
将待更新模块的期望版本分别安装到关联的依赖包存储空间。
4.根据权利要求1所述的方法,其特征在于,所述生成各更新平台的依赖包的下载地址包括:
将任一更新平台对应期望版本的依赖包上传运营支撑系统平台,得到该更新平台的依赖包的下载地址。
5.根据权利要求1所述的方法,其特征在于,所述依赖模块包括python库,所述依赖包包括python包。
6.一种依赖包的更新方法,其特征在于,所述方法包括:
解析更新配置信息,得到各更新平台的依赖包的下载地址和各更新平台对应的期望版本;
根据所述各更新平台对应的期望版本,确定当前更新平台的依赖包的目标期望版本;
若所述当前更新平台不存在所述依赖包,或所述依赖包的当前版本与所述目标期望版本不一致,则根据所述当前更新平台的依赖包的下载地址下载并安装所述目标期望版本的依赖包。
7.一种依赖包的更新装置,其特征在于,所述方法包括:
期望版本确定模块,用于根据开发配置信息确定待更新依赖模块的至少一个更新平台和该更新平台对应的期望版本;
期望版本打包模块,用于获取所述待更新依赖模块的期望版本,并将所述待更新依赖模块的期望版本分别打包为各更新平台的依赖包;
期望版本发布模块,用于生成各更新平台的依赖包的下载地址,并根据所述各更新平台的依赖包的下载地址和各更新平台对应的期望版本生成更新配置信息。
8.一种依赖包的更新装置,其特征在于,所述方法包括:
期望版本解析模块,用于解析更新配置信息,得到各更新平台的依赖包的下载地址和各更新平台对应的期望版本;
更新版本确定模块,用于根据所述各更新平台对应的期望版本,确定当前更新平台的依赖包的目标期望版本;
期望版本更新模块,用于若所述当前更新平台不存在所述依赖包,或所述依赖包的当前版本与所述目标期望版本不一致,则根据所述当前更新平台的依赖包的下载地址下载并安装所述目标期望版本的依赖包。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的依赖包的更新方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-6中任一项所述的依赖包的更新方法。
CN202210997544.4A 2022-08-19 2022-08-19 一种依赖包的更新方法、装置、设备及存储介质 Pending CN115328526A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210997544.4A CN115328526A (zh) 2022-08-19 2022-08-19 一种依赖包的更新方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210997544.4A CN115328526A (zh) 2022-08-19 2022-08-19 一种依赖包的更新方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN115328526A true CN115328526A (zh) 2022-11-11

Family

ID=83925741

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210997544.4A Pending CN115328526A (zh) 2022-08-19 2022-08-19 一种依赖包的更新方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115328526A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117251165A (zh) * 2023-08-24 2023-12-19 上海合芯数字科技有限公司 Buildroot编译方法、装置、终端及介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117251165A (zh) * 2023-08-24 2023-12-19 上海合芯数字科技有限公司 Buildroot编译方法、装置、终端及介质

Similar Documents

Publication Publication Date Title
CN108319460B (zh) 应用程序安装包的生成方法、装置、电子设备及存储介质
CN111209193B (zh) 程序的调试方法及装置
CN106610839B (zh) 发布升级包的方法、轻量升级方法、装置及系统
CN111026439B (zh) 应用程序的兼容方法、装置、设备及计算机存储介质
CN113986395A (zh) 一种linux系统下应用依赖自包含技术的打包方法
CN112506584A (zh) 资源文件加载方法、装置、设备、存储介质以及产品
CN114527996A (zh) 一种多服务的部署方法、装置、电子设备及存储介质
CN115328526A (zh) 一种依赖包的更新方法、装置、设备及存储介质
CN110113391B (zh) 一种客户端上线方法、装置及一种客户端运行方法、装置
CN112000334A (zh) 页面开发方法、装置、服务器及存储介质
CN115168130A (zh) 一种芯片测试方法、装置、电子设备及存储介质
CN110851211A (zh) 用于显示应用信息的方法、装置、电子设备和介质
CN113468067A (zh) 应用程序的调试方法、装置、电子设备和计算机可读介质
CN116775061A (zh) 微服务应用的部署方法、装置、设备及存储介质
CN112596814B (zh) 项目的集成打包方法、装置、设备、介质和程序产品
CN115328736A (zh) 一种探针部署方法、装置、设备和存储介质
CN114896317A (zh) 一种数据结构转换方法、装置、电子设备及存储介质
CN114510334A (zh) 类实例的调用方法、装置、电子设备及自动驾驶车辆
CN114237755A (zh) 应用运行方法、装置、电子设备以及存储介质
CN108345461B (zh) 应用更新方法和装置以及计算机可读存储介质
CN113129049B (zh) 用于模型训练和应用的文件配置方法和系统
CN113835893B (zh) 数据处理的方法、装置、设备、存储介质及程序产品
CN113590225B (zh) 贴图检测方法、装置、电子设备及存储介质
CN115757186A (zh) 一种软件接口的性能测试方法、装置、设备及介质
CN116599946A (zh) 一种基于React Native的热更新方法、装置、智能设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination