在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正则简单实例分析
Mar 21 Python
使用Kivy将python程序打包为apk文件
Jul 29 Python
Tesserocr库的正确安装方式
Oct 19 Python
Python函数装饰器实现方法详解
Dec 22 Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 Python
详解PyCharm+QTDesigner+PyUIC使用教程
Jun 13 Python
Python高级特性之闭包与装饰器实例详解
Nov 19 Python
pytorch加载自定义网络权重的实现
Jan 07 Python
200行python代码实现贪吃蛇游戏
Apr 24 Python
python:解析requests返回的response(json格式)说明
Apr 30 Python
深入浅析python 中的self和cls的区别
Jun 20 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 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 和 HTML
2006/10/09 PHP
php中实现简单的ACL 完结篇
2011/09/07 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
提交表单后 PHP获取提交内容的实现方法
2016/05/25 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
Jquery中dialog属性小记
2010/09/03 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
jquery二级导航内容均分的原理及实现
2013/08/13 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
2014/02/26 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
bootstrap使用validate实现简单校验功能
2016/12/02 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
使用requests库制作Python爬虫
2018/03/25 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
Python格式化字符串f-string概览(小结)
2019/06/18 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
python实现批量文件重命名
2019/10/31 Python
python3.8下载及安装步骤详解
2020/01/15 Python
通过自学python能找到工作吗
2020/06/21 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
保险专业大专生求职信
2013/10/26 职场文书
致200米运动员广播稿
2014/02/06 职场文书
教师求职自荐书
2014/06/14 职场文书
幸福中国演讲稿
2014/09/12 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
golang内置函数len的小技巧
2021/07/25 Golang