Docker异常重启后调用plt.show()/savefig()报orientation参数异常错误
解决方案
排查依赖版本冲突
这个报错大概率是matplotlib与pillow、numpy等依赖库版本不兼容导致的,Docker异常重启可能触发了依赖的意外更新或损坏。先查看当前环境的依赖版本:pip list | grep -E "matplotlib|pillow|numpy"锁定你之前正常运行时的版本组合重新安装,例如:
pip install matplotlib==3.5.3 pillow==9.1.0 numpy==1.21.6版本号需对应你之前的工作环境,不确定的话可以查看Docker镜像的历史构建记录。
清理matplotlib缓存
Docker重启后可能残留损坏的配置缓存,执行以下代码清理后重启Python环境:import matplotlib as mpl import shutil import os cache_dir = mpl.get_cachedir() if os.path.exists(cache_dir): shutil.rmtree(cache_dir)重建Docker镜像
异常重启可能导致镜像内的系统图形依赖(如libpng、freetype)损坏,建议重新构建镜像,确保基础环境完整。示例Dockerfile:FROM python:3.9-slim RUN apt-get update && apt-get install -y --no-install-recommends \ libpng-dev \ libfreetype6-dev \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt构建新镜像后启动容器,重新测试脚本。
正确配置无GUI后端
Docker容器默认无GUI环境,必须在导入matplotlib.pyplot之前设置非交互式后端,比如Agg:import matplotlib as mpl mpl.use('Agg') import matplotlib.pyplot as plt不要在导入plt后切换后端,否则会引发其他错误。
内容的提问来源于stack exchange,提问作者You_Donut
相关产品推荐
相关产品推荐

