You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 01:25:29