首先,需要自己准备好干净的SimHei.ttf文件,如果没有可以去下面链接下载

        链接: https://pan.baidu.com/s/1VldFqdU_kSX9iavNNwKncA 提取码: 0416 

先创建容器,因为需要将外部的tff文件放到容器内部,在创建容器的时候,需要挂载外部目录

        docker run -it -v(挂载目录) /mnt(外部目录):/mnt(内部目录)镜像名:版本号 /bin/bash

进入容器

docker exec -it 容器id /bin/bash

        fc-list 查看所有安装的字体

        如果 fc-list 是空,说明系统中没有安装任何字体,就需要先安装字体

安装字体包

apt-get update && apt-get install -y  fontconfig  fonts-wqy-zenhei

更新字体缓存

        fc-cache -fv

在更新缓存后,找到倒数第二行,带有.cache的路径,进入cd /root/.cache/ matplotlib

将外部的SimHei.ttf文件复制到当前目录下

找到fontlist-v330.json 文件,vi打开此文件,找到ttflist

如果没有SimHei.ttf这个字典,那么就复制上面一个,将fname的values改成SimHei.ttf的绝对路径

然后再使用fc-cache -fv 更新字体缓存

更新完了之后可以测试一下中文字体是否可用

简单测试样例

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.text(0.5, 0.5, '测试)

plt.savefig('./1.png')

或者

进入容器,检查字体是否可用:

fc-list | grep "SimHei"

最后:检查可用后,退出容器,一定要重新打包镜像!!!!(如果不重新打包镜像,容器重启之后将会前功尽弃)

打包镜像

docker commit 容器id 新镜像名:版本号

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐