解决CentOS上Pillow库依赖问题:libjpeg.so.9缺失的终极指南
作者:matrix
被围观: 329 次
发布时间:2024-06-25
分类:
使用Python的Pillow库(PIL)处理图像时,可能会遇到库依赖问题,例如缺少libjpeg.so.9文件
- from PIL import Image
- Traceback (most recent call last):
- File " stdin ", line 1, in module
- File "/home/work/.local/lib/python3.7/site-packages/PIL/Image.py", line 103, in module
- from . import _imaging as core
- ImportError: libjpeg.so.9: cannot open shared object file: No such file or directory
复制代码
正常来说是安装libjpeg库来解决 apt-get install libjpeg-dev / yum install libjpeg-devel 。但是我这台 CentOS机器之前有这个依赖,还有就是网络问题很麻烦
查找现有的libjpeg库文件
- sudo find / -name "libjpeg.so*" 2>;/dev/null
复制代码
比如找到 /home/work/.jjjjbbbo/lib/libjpeg.so.9
方法 1.更新动态链接配置
软链接到系统库目录,并更新动态链接器配置
- sudo ln -s /home/work/.jjjjbbbo/lib/libjpeg.so.9 /usr/lib/libjpeg.so.9
- sudo ldconfig
复制代码
说明:
ln -s 用于将找到的 lib 文件软链接到系统目录
ldconfig命令是更新动态链接器运行时绑定
方法 2.配置临时环境变量
不想修改系统配置,可以通过临时环境变量来解决
- export LD_LIBRARY_PATH=/home/work/.jjjjbbbo/lib:$LD_LIBRARY_PATH
- python3 -c 'from PIL import Image' # 执行测试,没有报错
复制代码
配置LD_LIBRARY_PATH环境变量后,运行无报错,确认问题解决
验证库是否正确链接
命令可以查看解释器关联的依赖库路径。
还可以通过设置LD_DEBUG=libs 来输出动态链接库加载信息:
- LD_DEBUG=libs python3 -c 'from PIL import Image'
复制代码
|