python pkg_resources模块实例详解

 更新时间:2026年03月12日 08:52:35   作者:幻灵H_Ling  
在Python中,pkg_resources模块是setuptools包的一部分,用于从安装的Python包中检索各种元数据,本文介绍python pkg_resources模块,感兴趣的朋友跟随小编一起看看吧

模块简介

英文使用文档

常用函数介绍(陆续更新)

pkg_resources.require(env=None, installer=None)
该函数负责返回对应包所需的所有依赖包,如:

import pkg_resources
pkg_resources.require('torch')
[torch 1.7.0+cu92 (/usr/local/lib/python3.6/dist-packages),
 numpy 1.19.4 (/usr/local/lib/python3.6/dist-packages),
 typing-extensions 3.6.6 (/usr/local/lib/python3.6/dist-packages),
 future 0.17.1 (/usr/local/lib/python3.6/dist-packages),
 dataclasses 0.8 (/usr/local/lib/python3.6/dist-packages)]

当未安装该模块,或者该模块要求的版本不对时,则会报错。

pkg_resources.parse_requirements(file)
该函数可以解析file中的每一条要求,每一行转换为pkg_resources.Requirement类并进行进一步处理。
通常的处理形式为调用每一行对应的name和specifier属性。前者代表需要包的名称,后者代表版本。
使用示例如下:

from pathlib import Path
import pkg_resources #此为管理安装包信息相关模块
file='/userhome/yolov5-t/requirements.txt'
for x in pkg_resources.parse_requirements(Path(file).open()):
    print(x.name)
    print(x.specifier)
Cython
matplotlib
>=3.2.2
numpy
>=1.18.5
opencv-python
>=4.1.2
Pillow
......

yolov5项目中使用的检查requirements文件的范式程序为:

def check_requirements(file='requirements.txt', exclude=()):
    # Check installed dependencies meet requirements
    import pkg_resources #此为管理安装包信息相关模块
    requirements = [f'{x.name}{x.specifier}' for x in pkg_resources.parse_requirements(Path(file).open())
                    if x.name not in exclude]
    pkg_resources.require(requirements)  #判断已经安装的包是否符合要求

pkg_resources是包资源管理模块,已经被标记为弃用

import pkg_resources
file_path = pkg_resources.resource_filename("my_package", "test.txt")
print(file_path)

到此这篇关于python pkg_resources模块简介的文章就介绍到这了,更多相关python pkg_resources模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • DenseNet121模型实现26个英文字母识别任务

    DenseNet121模型实现26个英文字母识别任务

    这篇文章主要为大家介绍了DenseNet121模型实现26个英文字母识别任务的实例过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • python+os根据文件名自动生成文本

    python+os根据文件名自动生成文本

    这篇文章主要为大家详细介绍了python+os根据文件名自动生成文本,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • Python FFT合成波形的实例

    Python FFT合成波形的实例

    今天小编大家分享一篇Python FFT合成波形的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python中多继承与菱形继承问题的解决方案与实践

    Python中多继承与菱形继承问题的解决方案与实践

    在Python这个灵活且功能强大的编程语言中,多继承是一个既强大又复杂的概念,它允许一个类继承自多个父类,从而能够复用多个父类的属性和方法,本文将深入解释Python中的多继承概念,详细剖析菱形继承问题,并探讨Python是如何解决这一难题的,需要的朋友可以参考下
    2024-07-07
  • 基于Keras 循环训练模型跑数据时内存泄漏的解决方式

    基于Keras 循环训练模型跑数据时内存泄漏的解决方式

    这篇文章主要介绍了基于Keras 循环训练模型跑数据时内存泄漏的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随想过来看看吧
    2020-06-06
  • 一文讲解python中的继承冲突及继承顺序

    一文讲解python中的继承冲突及继承顺序

    python支持多继承,如果子类没有重写方法,则默认会调用父类的方法,本文主要介绍了一文讲解python中的继承冲突及继承顺序,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 一则python3的简单爬虫代码

    一则python3的简单爬虫代码

    最近一直在学习Python,还有网络爬虫,于是就想起来把2者结合一下,所以就有了本文。
    2014-05-05
  • Django cookie和session的应用场景及如何使用

    Django cookie和session的应用场景及如何使用

    今天我们来重点看下Django中session和cookie的用法吧。我们会介绍cookie和session的工作原理,还会分享实际应用的案例。
    2021-04-04
  • Python 实现一个计时器

    Python 实现一个计时器

    这篇文章主要介绍了Python 实现一个计时器的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 分享unittest单元测试框架中几种常用的用例加载方法

    分享unittest单元测试框架中几种常用的用例加载方法

    这篇文章主要介绍了unittest单元测试框架中常用的几种用例加载方法,帮助大家更好的理解和使用python的unittest测试模块,感兴趣的朋友可以了解下
    2020-12-12

最新评论