在python image 中实现安装中文字体


Posted in Python onMay 16, 2020

如果一些应用需要到中文字体(如果pygraphviz,不安装中文字体,中文会显示乱码),就要在image 中安装中文字体。

默认 python image 是不包含中文字体的:

mac-temp:relation_graph test$ docker run --rm -it python bash
root@36d738e2084c:/# fc-list
/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book

Dockerfile 如下:

FROM python
RUN apt-get update
RUN apt-get install -y apt-utils dialog xfonts-utils
COPY ./wqy-microhei.ttc /usr/share/fonts/
RUN cd /usr/share/fonts/
RUN mkfontscale && mkfontdir && fc-cache

重新build image

mac-temp:ttc test$ docker build -t ttc:0.0.1 .

检查是否安装成功

mac-temp:ttc test$ docker run --rm -it ttc:0.0.1 bash
root@b1cc465b4ba9:/# fc-list :lang=zh-cn
/usr/share/fonts/wqy-microhei.ttc: WenQuanYi Micro Hei,文泉?微米黑,文泉驿微米黑:style=Regular
/usr/share/fonts/wqy-microhei.ttc: WenQuanYi Micro Hei Mono,文泉?等??微米黑,文泉驿等宽微米黑:style=Regular

其中 wqy-microhei.ttc 字体文件是在其他其他桌面系统上拷贝过来的,可以使用以下方法找到:

mac-temp test$ fc-list :lang=zh-cn
/System/Library/Assets/com_apple_MobileAsset_Font4/2e3dd84241cc7676f2fc8c357c9087fee8cd0075.asset/AssetData/Lantinghei.ttc: 兰亭黑\-简,?亭黑\-?,Lantinghei SC:style=Demibold,中黑
/System/Library/Assets/com_apple_MobileAsset_Font4/8d69c72f04dcc2dfc086aa401dbab7f8ec55d0bb.asset/AssetData/Kaiti.ttc: 楷体\-繁,楷?\-繁,Kaiti TC:style=黑体,黑?,Black

补充知识:Python内置自带中文字体设置

有些代码中的中文字体,在自己的环境不一定适用

可以通过如下代码打印出自己电脑已经安装的字体

找到其中的中文字体名称放在 = 后即可,例如SimHei(黑体)等。

记得加单引号!!!
记得加单引号!!!
记得加单引号!!!

举例:

plt.rcParams['font.family'] = 'SimHei'

查询代码:

import matplotlib.font_manager as fm

for font in fm.fontManager.ttflist:
 print(font.name)

结果:

在python image 中实现安装中文字体

以上这篇在python image 中实现安装中文字体就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python制作简单的朴素基数估计器的教程
Apr 01 Python
简单总结Python中序列与字典的相同和不同之处
Jan 19 Python
Python实现以时间换空间的缓存替换算法
Feb 19 Python
Python登录注册验证功能实现
Jun 18 Python
Python实现京东秒杀功能代码
May 16 Python
Django中提供的6种缓存方式详解
Aug 05 Python
Python实现PyPDF2处理PDF文件的方法示例
Sep 25 Python
Centos7 下安装最新的python3.8
Oct 28 Python
python cv2在验证码识别中应用实例解析
Dec 25 Python
pytorch中的卷积和池化计算方式详解
Jan 03 Python
django orm模块中的 is_delete用法
May 20 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 Python
Python 判断时间是否在时间区间内的实例
May 16 #Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 #Python
Python填充任意颜色,不同算法时间差异分析说明
May 16 #Python
解决echarts中饼图标签重叠的问题
May 16 #Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 #Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 #Python
Python如何使用PIL Image制作GIF图片
May 16 #Python
You might like
在WIN98下以apache模块方式安装php
2006/10/09 PHP
如何使用php判断所处服务器操作系统的类型
2013/06/20 PHP
php实现递归的三种基本方式
2020/07/04 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
js 通用订单代码
2013/12/23 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
Vue动态组件实例解析
2017/08/20 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
原生js实现Flappy Bird小游戏
2018/12/24 Javascript
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
Python对象转换为json的方法步骤
2019/04/25 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
毕业生求职简历的自我评价
2013/10/07 职场文书
高中毕业生的个人自我评价
2014/02/21 职场文书
迎国庆演讲稿
2014/09/15 职场文书
护士求职自荐信
2015/03/25 职场文书
学生病假条怎么写
2015/08/17 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL