安装Python库importlib_resources
我的环境:Window10,Python3.7,Anaconda3,Pycharm2023.1.3
importlib_resources
importlib_resources是一个用于访问Python包中非代码资源(如文本、图片等)的库,它提供了一种简单的方式来使用Python包中的资源,在Python 3.7版本中引入。
importlib_resources利用Python的导入系统提供对包内资源的访问。资源可以是包含在包中的文件,也可以是与包外部模块相邻的文件,它们可以是文本或二进制数据。importlib.resources模块允许开发者以一致和稳定的方式读取包含在Python包中的资源文件,而不必关心这些资源文件是如何打包的,例如,它们可能是在zip文件中。
安装
3.7及以上的Python已经内置此库,分为三种,①在线pip,②在线conda,③手动下载包在pip
第①种直接cmd进行pip安装 (最常见/推荐的安装方法)
①
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade importlib_resources
②
pip install requests importlib_resources
第②种打开Anaconda-Prompt 输入命令安装(有Anaconda的话)
①
conda install -c conda-forge importlib_resources
第③种尝试从GitHub下载源代码或者wheel上进行安装。这种方法可能需要更多的手动步骤,但提供了更多的灵活性
安装中可能会遇到的问题
提示:预判大家的预判
-
Python版本问题:Python版本低于3.7,需要安装importlib-resources的backport版本。
-
pip未安装或版本过旧:可能需要先更新pip或确保pip已正确安装在系统上。
-
权限问题:在某些系统上,可能需要管理员权限来安装库,在Win10用管理员身份运行CMD,在Linux或macOS上用sudo命令。
-
路径问题:如果pip不在系统的path环境变量中,你需要指定pip的完整路径来安装库。
-
网络问题:在无法访问PyPI的情况下,你需要配置国内镜像源以加速下载。
-
No module named 'importlib.resources'
错误时,看看这个 -
ModuleNotFoundError
时,由于相对导入导致的,或者是因为混淆了Python和pip的版本 -
在使用PyInstaller构建可执行文件时,你用到了
importlib_resources
,可能会出现错误,因为PyInstaller可能不支持importlib_resources的使用。
效果展示
通过importlib.resources访问包内data.txt的数据
代码:
import importlib.resources as res
import package
text = res.read_text(package, 'data.txt', encoding='utf-8', errors='strict')
importlib_resources其主要特点包括:
- 资源访问:可以打开或读取包内的资源,支持资源直接包含在某个包中,包含在某个包的子目录中,或是与某个包外部的模块相邻,支持二进制和文本模式。
- Traversable对象:返回一个可遍历的对象,代表资源容器(类似于目录)及其资源(类似于文件)。
- 上下文管理器:as_file函数提供了一个上下文管理器,用于处理从zip文件等提取资源时可能创建的临时文件。
- 性能:相比于pkg_resources,importlib.resources提供了相似的功能但性能开销更低。
- 兼容性:支持从Python 3.7及以上版本向后兼容,并且有独立的向下移植版本。
- 提供了从Python包中访问非代码“resources”的例程,如open_text函数可以以文本读方式打开包内的资源,默认情况下资源将以UTF-8格式打开供读取
希望本文对你安装Python的XXX库提供了帮助。
SueMagic wish you a happy coding~
有疑问可联系我。
更多精彩链接/友情链接:
问题解决:pip install __命令安装不了Python库
importlib-resources库官方
importlib-resources库官方Github
pypi-importlib-resources
Python第三方库文章