在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获取文件后缀名及批量更新目录下文件后缀名的方法
Nov 11 Python
Python批量转换文件编码格式
May 17 Python
浅谈Python由__dict__和dir()引发的一些思考
Oct 30 Python
Python多线程扫描端口代码示例
Feb 09 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
python微信撤回监测代码
Apr 29 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
python nmap实现端口扫描器教程
May 28 Python
PyQt实现计数器的方法示例
Jan 18 Python
Django rest framework如何自定义用户表
Jun 09 Python
python中Matplotlib绘制直线的实例代码
Jul 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连接Oracle for NT 远程数据库
2006/10/09 PHP
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
phpStudy配置多站点多域名和多端口的方法
2017/09/01 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
关于JavaScript中的关联数组分析
2013/04/09 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
AngularJs学习第八篇 过滤器filter创建
2016/06/08 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
JS实现简单贪吃蛇小游戏
2020/10/28 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
学习Python需要哪些工具
2020/09/04 Python
python cookie反爬处理的实现
2020/11/01 Python
产品委托授权书范本
2014/09/16 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
特种设备安全管理制度
2015/08/06 职场文书