python安装包中的一些问题(三):加载 matplotlib 的过程中,调用了 Pillow(PIL 库)时发生了错误
报错:
runfile('/Volumes/Expansion/Stuttgart/code_run/glacier_map_hugonnet/test_image_cut.py', wdir='/Volumes/Expansion/Stuttgart/code_run/glacier_map_hugonnet') Traceback (most recent call last): File /opt/anaconda3/lib/python3.11/site-packages/spyder_kernels/py3compat.py:356 in compat_exec exec(code, globals, locals) File /Volumes/Expansion/Stuttgart/code_run/glacier_map_hugonnet/test_image_cut.py:14 import matplotlib.pyplot as plt File /opt/anaconda3/lib/python3.11/site-packages/matplotlib/__init__.py:161 from . import _api, _version, cbook, _docstring, rcsetup File /opt/anaconda3/lib/python3.11/site-packages/matplotlib/rcsetup.py:27 from matplotlib.colors import Colormap, is_color_like File /opt/anaconda3/lib/python3.11/site-packages/matplotlib/colors.py:52 from PIL import Image File /opt/anaconda3/lib/python3.11/site-packages/PIL/Image.py:84 from . import _imaging as core
咨询chatgpt,有以下解决方案:
这个报错显示在加载 matplotlib
的过程中,调用了 Pillow
(PIL
库)时发生了错误,而问题的根源与之前提到的缺失动态库 libtiff
类似。
解决方法
以下步骤可以帮助你解决问题:
方法 1:确保安装必要依赖
Pillow 依赖多个动态库,包括 libjpeg
, libpng
, 和 libtiff
等。可以通过 Anaconda 安装这些依赖:
-
安装
libtiff
和pillow
:conda install -c conda-forge pillow libtiff
-
检查
Pillow
是否工作正常:from PIL import Image print(Image.__version__)
如果没有报错,说明问题解决。
方法 2:重装 matplotlib
和 Pillow
如果依赖未正确安装,重新安装相关库:
- 卸载并重装
matplotlib
和Pillow
:pip uninstall matplotlib pillow pip install matplotlib pillow
- 如果使用 Conda 环境,执行:
conda install -c conda-forge matplotlib pillow
方法 3:检查环境冲突
多个 Python 环境共存可能导致动态库冲突,尤其是 matplotlib
或 Pillow
引用了错误的库。
步骤
-
确认当前 Python 环境路径:
which python
输出路径应在你的 Conda 环境或虚拟环境中。
-
检查
Pillow
的安装路径:import PIL print(PIL.__file__)
输出的路径应在你的 Conda 或虚拟环境中。
-
如果路径不一致,清理环境:
- 删除问题库:
pip uninstall pillow conda uninstall pillow
- 重新安装:
conda install -c conda-forge pillow
- 删除问题库:
方法 4:手动安装动态库(macOS)
使用 Homebrew 安装缺失的动态库:
- 安装
libjpeg
,libtiff
, 和其他依赖:brew install libjpeg libtiff libpng
- 验证路径是否正确:
brew info libtiff
- 确保环境变量中包含动态库路径:
export DYLD_LIBRARY_PATH="/usr/local/lib:$DYLD_LIBRARY_PATH"
结果均没有用,结果重装anaconda有效。估计是不同时间安装的包存在冲突,因此安装虚拟环境是必要且有效的。
❤️欢迎收藏点赞❤️