MacOS 10.13.4更新后PIL Image.py加载失败求助
看到你贴的报错信息:
File "/Library/Python/2.7/site-packages/PIL/Image.py", line 56, in
from . import _imaging as core
ImportError: dlopen(/Library/Python/2.7/site-packages/PIL/_imaging.so, 2): Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.8.dylib
Referenced from: /Library/Python/2.7/site-packages/PIL/_imaging.so
我之前更新Mac后也碰到过完全一样的问题!本质是系统更新后,Homebrew管理的libjpeg库路径或者版本发生了变化,但之前安装的PIL(现在基本用Pillow替代)还是硬编码指向旧的库路径,导致加载失败。
给你几个亲测有效的解决步骤:
第一步:卸载现有PIL/Pillow
先把旧的有问题的包卸掉,避免后续安装冲突:pip uninstall -y pillow(注:Python 2.7环境里,PIL已经被Pillow官方替代,所以卸载的是pillow包)
第二步:重新安装/更新libjpeg库
用Homebrew重新安装jpeg库,确保它是最新版本且系统能正确识别路径:brew reinstall jpeg第三步:重新安装Pillow
现在重新安装Pillow,它会自动编译并链接到最新的libjpeg库:pip install pillow
完成这三步后,再试试导入PIL.Image,应该就能正常工作了。
如果还是不行,可以用otool检查_imaging.so的依赖路径:
otool -L /Library/Python/2.7/site-packages/PIL/_imaging.so
如果看到libjpeg.8.dylib的路径还是旧的,也可以用install_name_tool手动修改,但一般重新安装的方法就足够解决问题了。
内容的提问来源于stack exchange,提问作者kees

