在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 tkinter事件高级用法实例
Jan 31 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
Feb 18 Python
Python实现的凯撒密码算法示例
Apr 12 Python
python版本单链表实现代码
Sep 28 Python
使用numba对Python运算加速的方法
Oct 15 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
Jul 04 Python
python sklearn常用分类算法模型的调用
Oct 16 Python
Python装饰器使用你可能不知道的几种姿势
Oct 25 Python
Python脚本操作Excel实现批量替换功能
Nov 20 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
May 14 Python
如何在Python中妥善使用进度条详解
Apr 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
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
jquery一般方法介绍 入门参考
2011/06/21 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
Python中文编码知识点
2019/02/18 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
收藏!10个免费高清视频素材网站!【设计、视频剪辑必备】
2021/03/18 杂记
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
毕业生求职推荐信
2013/11/04 职场文书
大学生标准自荐书
2014/06/15 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
病危通知书样本
2015/04/17 职场文书
《实心球》教学反思
2016/02/23 职场文书
Oracle笔记
2021/04/05 Oracle
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python
vue项目支付功能代码详解
2022/02/18 Vue.js
AngularJS实现多级下拉框
2022/03/25 Javascript