[发明专利]一种运行时安装或升级Python包的方法及系统在审
申请号: | 202210132434.1 | 申请日: | 2022-02-14 |
公开(公告)号: | CN114491176A | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 蒋烁淼;周逸灵 | 申请(专利权)人: | 上海驻云信息科技有限公司 |
主分类号: | G06F16/903 | 分类号: | G06F16/903;G06F16/901;G06F8/65;G06F8/61 |
代理公司: | 北京中索知识产权代理有限公司 11640 | 代理人: | 高海涛 |
地址: | 201203 上海市浦东新区中*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 运行 安装 升级 python 方法 系统 | ||
本发明公开了一种运行时安装或升级Python包的方法及系统,所述方法包括如下步骤:根据需要安装或升级的包名,在用户自定义的包目录下查询同名的包;若查询到同名的包,则将其删除,并在同目录下进行安装所述需要安装或升级的包;若未查询到同名的包,则直接在同目录下安装所述需要安装或升级的包。使用本方法可以在脚本运行之前或者脚本运行过程中方便快捷的安装或升级Python第三方包。
技术领域
本发明属于计算机技术领域,具体而言属于一种运行时安装或升级Python包的方法及系统。
背景技术
对于允许执行用户自定义脚本的服务器端应用程序而言,都有满足用户自定义脚本中的第三方依赖包的需求。
在常规使用第三方包的过程中大多是预先安装好一些常用的Python包以供用户直接使用,或者是使用Docker等容器技术使脚本在容器中安装所需第三方包并运行用户自定义脚本。但是上述方法均存在其各自的弊端,像预先安装好Python包的方法其无法总是满足用户的需要,用户无法使用没有预先安装的包,并且在用户运行脚本的过程中若是出现无第三方包或者第三方包需要升级的问题的话,只能等待服务器端应用程序升级更新后才能使用。
若是使用容器则会导致脚本启动速度很慢,并且由于是完全隔离,每个用户脚本执行实际都需要在容器中启动一个Python虚拟机,资源占用较多。
有鉴于此,特提出本发明。
发明内容
本发明的第一目的在于提供一种运行时安装或升级Python包的方法,本方法使用先删除后安装的方式来进行Python第三方包的安装或是升级,并且本方法所有的操作均是在用户自定义的包目录下进行,无需运行于隔离环境下,如此在保持启动速度快、资源占用小的同时,用户又可以根据需要随时进行安装或升级使用到的第三方Python包。
本发明的第二目的在于提供一种运行时安装或升级Python包的系统,本系统基于上述方法所设计,也即是说本系统为上述方法的实施提供了底层保障。
为了实现本发明的上述目的,特采用以下技术方案:
本发明提供了一种运行时安装或升级Python包的方法,具体包括如下步骤:
根据需要安装或升级的包名,在用户自定义的包目录下查询同名的包;
若查询到同名的包,则将其删除,并在同目录下进行安装所述需要安装或升级的包;若未查询到同名的包,则直接在同目录下安装所述需要安装或升级的包。
优选地,上述方法均是在用户自定义的包目录下进行的,此目录是用户自定义的专用于存放脚本第三方包的文件夹。所述查询的过程就是依照待安装或升级的Python包名字进行检索,若检索到有同名的目录则执行删除操作,否则视为无同名第三方包,接下来就直接进行安装操作。
优选地,所述删除过程包括如下步骤:在用户自定义的包目录下按照后缀进行检索,所述后缀为“.dist-info”,并在所有符合后缀条件的目录下检查顶层文件,即“top-level.txt”文件,所述“top-level.txt”文件中会存储已安装的Python第三方包信息,所述“top-level.txt”文件中存储的信息如果与待安装或升级的Python包名字同名,则将整个子目录删除,这里所说的子目录指的是其后缀为“.dist-info”,且其顶层文件中的内容与待安装或升级的Python包同名的子目录以及用户自定义的包目录下与Python包同名目录。删除整个子目录的目的在于“斩草除根”,将所有的残留文件全部删除掉,避免后续出现不必要的问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海驻云信息科技有限公司,未经上海驻云信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210132434.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:期权价值属性值确定方法、装置、电子设备及存储介质
- 下一篇:车载用天线装置