快速识别项目开源组件成分的方法、装置、设备及介质与流程

专利2026-07-04  13


本发明涉及开源组件成分识别,尤其涉及一种快速识别项目开源组件成分的方法、装置、设备及介质。


背景技术:

1、python项目组件指的是为了完成某个功能将具有相同规范的类组合在一起形成的最小的集合,这类组件根据代码是否开源可以简单分为开源组件和私有组件两大类,为了对python项目软件的组件成分进行快速识别,需要分析python项目软件依赖的python组件,目前python组件分析主要通过查阅组件的文档、源代码,使用包管理工具和依赖关系分析工具,获取软件中使用的开源python组件,例如,分析requirements.txt(项目所需的依赖包及其版本信息的文本文件)文件以对依赖的组件进行识别,但requirements.txt文件里面的组件信息只是针对当前python环境里面的组件,而不是针对项目的,因此容易出现非本项目中的组件信息,同时requirements.txt文件里面记录的组件信息只是到第一层直接依赖的组件,不能分析间接依赖的组件,造成组件识别错误、遗漏和速度慢的问题,导致识别python项目开源组件的效果较差。


技术实现思路

1、本发明提供一种快速识别项目开源组件成分的方法、装置、设备及介质,其主要目的在于解决识别python项目开源组件的效果较差的问题。

2、为实现上述目的,本发明提供的一种快速识别项目开源组件成分的方法,包括:获取预构建的python开源组件库,计算python开源组件库中每个开源组件的组件依赖关系;根据组件依赖关系构建python开源组件库的组件依赖关系图谱;接收用户上传的python软件的源代码,根据源代码分析python软件的直接依赖组件,并根据直接依赖组件在组件依赖关系图谱中查找python软件的间接依赖组件;根据直接依赖组件及间接依赖组件确定python软件的开源组件成分。

3、本发明还提供了一种快速识别项目开源组件成分的装置,包括:组件依赖关系计算模块,用于获取预构建的python开源组件库,计算python开源组件库中每个开源组件的组件依赖关系;组件依赖关系图谱构建模块,用于根据组件依赖关系构建python开源组件库的组件依赖关系图谱;依赖组件分析模块,用于接收用户上传的python软件的源代码,根据源代码分析python软件的直接依赖组件,并根据直接依赖组件在组件依赖关系图谱中查找python软件的间接依赖组件;开源组件成分确定模块,用于根据直接依赖组件及间接依赖组件确定python软件的开源组件成分。

4、本发明还提供了一种电子设备,电子设备包括:与至少一个处理器通信连接的存储器;其中,处理器用于执行存储在存储器上的计算机程序;存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器能够执行上述的一种快速识别项目开源组件成分的方法。

5、本发明还提供了一种计算机可读存储介质,存储有计算机程序,其特征在于,计算机程序被处理器执行时,实现上述任意一项的快速识别项目开源组件成分的方法。

6、根据本发明提出的一种快速识别项目开源组件成分的方法,通过计算预构建的python开源组件库中每个开源组件的组件依赖关系,能够全面地识别python开源组件库中每个组件的组件依赖关系,进而保证后续组件成分分析的准确度;再构建组件依赖关系图谱描述python开源组件库每个组件的直接依赖组件以及间接依赖组件,以直观、全面的描述组件依赖关系;对用户上传的python软件的源代码进行直接依赖组件分析以及根据组件依赖关系图谱查找间接依赖组件,能够快速地对python软件的开源组件成分进行分析,从而提高python项目开源组件的识别效果。因此本发明提出的一种快速识别项目开源组件成分的方法、装置、设备及介质,可以解决识别项目开源组件成分时识别效果较差的问题。



技术特征:

1.一种快速识别项目开源组件成分的方法,其特征在于,所述方法包括:

2.如权利要求1所述的一种快速识别项目开源组件成分的方法,其特征在于,所述计算所述python开源组件库中每个开源组件的组件依赖关系,包括:

3.如权利要求2所述的一种快速识别项目开源组件成分的方法,其特征在于,所述利用预设的组件命令对所述直接组件集中的开源组件进行逐级分析,得到所述直接组件集中每个开源组件的组件依赖关系,包括:

4.如权利要求1所述的一种快速识别项目开源组件成分的方法,其特征在于,所述根据所述组件依赖关系构建所述python开源组件库的组件依赖关系图谱,包括:

5.如权利要求4所述的一种快速识别项目开源组件成分的方法,其特征在于,所述根据所述组件依赖关系确定所述图谱节点之间的关联关系,包括:

6.如权利要求1所述的一种快速识别项目开源组件成分的方法,其特征在于,所述根据所述源代码分析所述python软件的直接依赖组件,包括:

7.如权利要求1所述的一种快速识别项目开源组件成分的方法,其特征在于,所述根据所述直接依赖组件在所述组件依赖关系图谱中查找所述python软件的间接依赖组件,包括:

8.一种快速识别项目开源组件成分的装置,其特征在于,所述装置包括:

9.一种电子设备,其特征在于,所述电子设备包括:

10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至7中任意一项所述的快速识别项目开源组件成分的方法。


技术总结
本发明涉及开源组件成分识别技术领域,揭露了一种快速识别项目开源组件成分的方法、装置、设备及介质,该方法包括:计算预构建的python开源组件库中每个开源组件的组件依赖关系;根据组件依赖关系构建组件依赖关系图谱;分析用户上传的源代码的直接依赖组件,并根据直接依赖组件在组件依赖关系图谱中查找间接依赖组件,根据直接依赖组件及间接依赖组件确定开源组件成分。通过本发明实施的根据开源组件库的组件依赖关系图谱进行直接依赖组件及间接依赖组件的分析,能够全面快速地对python软件的源代码进行开源组件成分识别,提高python软件开源组件成分识别的效果。

技术研发人员:肖红飞,万振华,王颉,李华,董燕
受保护的技术使用者:深圳开源互联网安全技术有限公司
技术研发日:
技术公布日:2024/7/25
转载请注明原文地址: https://bbs.8miu.com/read-441906.html

最新回复(0)