根据现有的libjpeg依赖修复ImportError

作者:matrix 被围观: 752 次 发布时间:2024-06-25 分类:Linux Python | 无评论 »

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环境变量后,运行无报错,确认问题解决

验证库是否正确链接

ldd $(which python3)

ldd命令可以查看Python解释器关联的依赖库路径。

还可以通过设置LD_DEBUG=libs 来输出动态链接库加载信息:

LD_DEBUG=libs python3 -c 'from PIL import Image'
其他文章:
本文固定链接:https://www.hhtjim.com/libjpeg-dependency-fix-for-pil-library.html
matrix
本文章由 matrix 于2024年06月25日发布在Linux, Python分类下,目前没有通告,你可以至底部留下评论。
转载请注明:根据现有的libjpeg依赖修复ImportError-HHTjim'S 部落格
关键字:,

添加新评论 »

 🙈 😱 😂 😛 😭 😳 😀 😆 👿 😉 😯 😮 😕 😎 😐 😥 😡 😈 💡

插入图片

NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!