如何在Ubuntu系统中修改PIL使用的Image.core.jpeglib版本
解决步骤
1. 卸载原有冲突依赖
首先移除系统自带的libjpeg9版本和当前Python环境中已安装的Pillow,避免版本冲突:
- 卸载系统原生libjpeg相关包:
sudo apt remove -y libjpeg-dev libjpeg-turbo* - 卸载当前Python环境的Pillow:
pip uninstall -y pillow - 安装编译所需基础工具:
sudo apt install -y build-essential
2. 编译安装jpeglib v8
获取jpeglib v8版本的源码包后执行以下操作:
- 解压源码包:
tar -zxvf jpegsrc.v8d.tar.gz && cd jpeg-8d - 配置编译参数:
./configure --prefix=/usr/local --enable-shared --enable-static - 编译并安装:
make && sudo make install - 刷新系统动态库缓存,让系统识别新安装的jpeglib版本:
sudo ldconfig
3. 重新编译安装Pillow
必须重新编译Pillow使其绑定刚安装的jpeglib v8,建议选择和Windows环境完全相同的Pillow版本,避免其他逻辑差异:
pip install --no-cache-dir --global-option="build_ext" --global-option="--jpeg-libs=/usr/local/lib" --global-option="--jpeg-includes=/usr/local/include" pillow==<Windows侧Pillow版本号>
将命令中的<Windows侧Pillow版本号>替换为你Windows环境实际使用的Pillow版本即可。
4. 验证配置正确性
执行以下Python代码验证Pillow绑定的jpeglib版本:
from PIL import features print(features.version_feature('jpeg'))
输出为8.x版本即代表配置生效,之后读取测试图片对比和Windows侧的数组输出即可。
提示:如果后续需要恢复系统默认的jpeglib版本,进入jpeg-8d源码目录执行
sudo make uninstall,再重新安装系统原生的libjpeg-dev和Pillow即可。
内容的提问来源于stack exchange,提问作者JP1
相关产品推荐
相关产品推荐

