You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

将Pillow从8.3.2版本升级至9.1.1版本:关于libjpeg-turbo与libjpeg-dev依赖的疑问

关于Pillow 9.1.1升级与JPEG依赖的说明

好问题!我刚好研究过Pillow 9.x版本的构建逻辑,给你梳理清楚两种核心场景的情况:

核心前提

Pillow 9.0.0及以上版本官方预编译包确实是基于libjpeg-turbo构建的,但这并不意味着你必须在服务器上单独安装该库才能使用升级后的Pillow——分两种情况看:

1. 使用PyPI预编译wheel包(推荐/大部分场景)

如果你是通过pip install pillow==9.1.1直接安装PyPI上的预编译包,那么完全不需要在服务器上安装libjpeg-turbo或者现有的libjpeg-dev

  • 预编译wheel已经把libjpeg-turbo的二进制依赖打包在内了,安装后直接就能正常处理JPEG图片,和之前使用Pillow 8.x的体验完全一致。
  • 这种情况下,你甚至可以保留服务器上现有的libjpeg-dev,不会有任何冲突。

2. 从源代码编译安装Pillow(特殊场景)

如果你的环境必须从源码编译Pillow(比如自定义编译参数、非x86架构服务器等),这时候就需要依赖JPEG开发库,但依然不需要强制替换成libjpeg-turbo:

  • 你可以继续使用现有的libjpeg-dev,Pillow 9.x依然完全兼容标准的libjpeg库,只是相比libjpeg-turbo,JPEG解码/编码的性能会稍差一些。
  • 如果你想享受libjpeg-turbo带来的性能提升,可以安装对应系统的libjpeg-turbo开发包(比如Debian/Ubuntu是libjpeg-turbo-dev,CentOS是libjpeg-turbo-devel),编译时Pillow会自动检测并优先使用它。

总结

除非你是从源码编译Pillow且主动追求性能提升,否则完全不需要更换或新增libjpeg-turbo依赖,直接升级Pillow即可正常使用。

内容的提问来源于stack exchange,提问作者sambid shrestha

火山引擎 最新活动