[发明专利]一种检测python环境中依赖冲突的方法有效

专利信息
申请号: 202011640702.8 申请日: 2020-12-31
公开(公告)号: CN112631607B 公开(公告)日: 2023-09-26
发明(设计)人: 李朕名;王莹;王一博;王超;于海;朱志良 申请(专利权)人: 东北大学
主分类号: G06F8/41 分类号: G06F8/41;G06F8/71
代理公司: 沈阳东大知识产权代理有限公司 21109 代理人: 李运萍
地址: 110819 辽宁*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 检测 python 环境 依赖 冲突 方法
【权利要求书】:

1.一种检测python环境中依赖冲突的方法,其特征在于,包括流程如下:

步骤1:构建元数据存储库,包括如下步骤:

步骤:1.1:获取PYPI所有开源项目名称,判断是否为新增项目,若是则记录名称,若否则不用记录名称;

步骤1.2:获取当前PYPI中所有开源项目版本信息,与数据库对比,获取全部项目更新版本;

步骤1.3:获取全部项目更新版本的直接依赖关系;

步骤1.4:建立全局依赖网络,为每个项目形成依赖关系树;

步骤2:分析项目更新引起的依赖问题,包括如下步骤:

步骤2.1:根据步骤1构建的元数据存储库获取基础检测数据;

步骤2.2:查找被分析项目实际安装依赖项;

步骤2.3:通过步骤2.2,建立被分析项目的完全依赖树及具体安装版本;

步骤2.4:检测依赖冲突问题;

步骤2.5:若未发现依赖冲突问题,执行预测问题分析;

步骤2.6:针对已发生的依赖冲突问题,向开发者推送解决方案。

2.根据权利要求1所述检测python环境中依赖冲突的方法,其特征在于,所述步骤1.3的过程如下:

步骤1.3.1:获取全部项目更新版本详细信息,与临时队列中数据进行匹配,查询出所有项目对应本次更新版本的下载链接;

步骤1.3.2:下载链接中的安装包,执行uncompress方法进行解压缩操作,解压后将非依赖配置文件删除,仅保留项目依赖配置文件;

步骤1.3.3:读取步骤1.3.2中保留的配置文件,通过正则表达式匹配其中的依赖信息,将其存储于package_info数据表中,从而获取项目更新版本直接依赖关系。

3.根据权利要求1所述检测python环境中依赖冲突的方法,其特征在于,所述步骤1.4的过程如下:

步骤1.4.1:获取全部项目名存于NameList中,定义Pi为根节点项目,将Pi属于NameList的最新版本视为搜索的起始节点,逐一开始遍历NameList;

步骤1.4.2:解析Pi的setup.py文件,根据广度优先拓扑加载顺序,求得并下载Pi直接依赖的包D(Pi)的实际安装版本作为与其直接相连的节点,而二者的边权值包括版本范围、优先级;

步骤1.4.3: 解析D(Pi)的setup.py文件,根据广度优先的拓扑加载顺序,求得并下载D(Pi) 相对于根节点项目pi的直接依赖的包的实际安装版本,将其作为与之连接的节点,同时赋予边权值包括版本范围、优先级;

步骤1.4.4:循环执行步骤1.4.1至步骤1.4.3,直到将所有根节点项目pi直接依赖和间接依赖的package下载完毕为止,若存在依赖冲突的节点,则将加载优先级高的节点定为已安装节点。

4.根据权利要求1所述检测python环境中依赖冲突的方法,其特征在于,所述步骤2.2的过程如下:

定义conflict_list为被分析项目的冲突状态位,用于记录被分析项目的依赖节点信息引起依赖冲突问题的状态;priority_list为根节点项目Pi的优先级队列,用于记录实际安装时,进入依赖树的安装顺序优先级;node_list为根节点项目Pi的实际安装依赖项名称;version_list为根节点项目Pi的实际依赖项的安装版本;

步骤2.2.1:通过被分析项目和版本号,查询到该版本被分析项目的直接依赖和依赖版本范围,遍历conflict_list,priority_list,node_list,version_list, range_list队列,查询依赖项和依赖版本范围是否与优先级较高的依赖项存在交集,记录判断信息,若有则取优先级高的依赖项的版本作为自身版本存入队列中,若没有则将符合依赖范围的最新版本存入队列中,并记录优先级,节点名及冲突状态;

步骤2.2.2:通过广度优先搜索,查询被分析项目和版本号对应全部直接依赖与间接依赖节点,再依次执行步骤2.2.1。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202011640702.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top