在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 相关文章推荐
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
深入解析Python设计模式编程中建造者模式的使用
Mar 02 Python
详解python实现读取邮件数据并下载附件的实例
Aug 03 Python
Python带动态参数功能的sqlite工具类
May 26 Python
删除python pandas.DataFrame 的多重index实例
Jun 08 Python
使用python获取电脑的磁盘信息方法
Nov 01 Python
Python socket模块ftp传输文件过程解析
Nov 05 Python
python实现双色球随机选号
Jan 01 Python
python机器学习库xgboost的使用
Jan 20 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
详解Python 循环嵌套
Jul 09 Python
Python可变集合和不可变集合的构造方法大全
Dec 06 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
PHP define函数的使用说明
2008/08/27 PHP
php代码运行时间查看类代码分享
2011/08/06 PHP
php中防止伪造跨站请求的小招式
2011/09/02 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
浅析php学习的路线图
2013/07/10 PHP
迁移PHP版本到PHP7
2015/02/06 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
jQuery 中的 DOM 操作
2016/04/26 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
Vue自定义指令实现checkbox全选功能的方法
2018/02/28 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
跟老齐学Python之玩转字符串(3)
2014/09/14 Python
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
深入分析python中整型不会溢出问题
2018/06/18 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
旅游管理专业生自荐信范文
2014/01/02 职场文书
电气自动化个人求职信范文
2014/02/03 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
法制宣传月活动总结
2014/04/29 职场文书
中层干部培训方案
2014/06/16 职场文书
小学校长个人总结
2015/03/03 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android
sql server偶发出现死锁的解决方法
2022/04/10 SQL Server