Windows系统下查询Pillow使用的libjpeg版本的方法
Windows系统查询Pillow依赖libjpeg版本的方法
方法一:使用Pillow内置依赖查询接口(最推荐)
该方法直接读取Pillow运行时实际加载的链接库信息,不会和系统内其他同名jpeg库混淆,无需额外安装工具,支持Pillow 5.2及以上所有版本,你使用的9.1.1版本完全兼容。
操作步骤:
- 打开命令提示符或PowerShell,激活安装了对应Pillow版本的Python环境(使用conda/venv虚拟环境时需提前激活)
- 输入
python进入交互式解释器,依次执行以下代码:
from PIL import features # 优先查询是否使用libjpeg-turbo解码库 jpeg_turbo_ver = features.version("libjpeg_turbo") print(f"libjpeg-turbo版本: {jpeg_turbo_ver}") # 若上一步返回None,说明使用标准版libjpeg,执行以下查询 if not jpeg_turbo_ver: print(f"标准libjpeg版本: {features.version('jpeg')}")
终端打印的版本号即为Pillow当前实际使用的jpeg解码库版本。
方法二:手动核对Pillow安装目录下的动态链接库
如果需要手动校验文件信息,可以直接查看Pillow目录内的dll文件:
- 执行以下命令获取Python第三方包的安装路径:
python -c "import site; print(site.getsitepackages()[0])" - 打开命令输出的路径,进入其中的
PIL子文件夹 - 查找文件名带
jpeg关键词的dll文件,常见命名包括libjpeg-9.dll、turbojpeg.dll、jpeg62.dll等,文件名会标注主版本号;右键点击对应dll,选择「属性-详细信息」即可查看完整版本号。
补充说明:你遇到的同一张JPG图像经通道顺序对齐后,Pillow和OpenCV读取的数组仍存在微小像素差(差值多在±3以内)、视觉效果完全一致的情况,除libjpeg版本差异外,也可能是两个库编译时配置的DCT计算精度、采样参数不同导致的正常解码误差,不影响常规图像处理使用。
内容的提问来源于stack exchange,提问作者nnn
相关产品推荐
相关产品推荐

