在python image 中安装中文字体的实现方法


Posted in Python onAugust 22, 2019

如果一些应用需要到中文字体(如果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 image 中安装中文字体的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python元组操作实例解析
Sep 23 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
python 创建一个空dataframe 然后添加行数据的实例
Jun 07 Python
Python爬虫实现(伪)球迷速成
Jun 10 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
python变量命名的7条建议
Jul 04 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 Python
TensorBoard 计算图的查看方式
Feb 15 Python
python3 xpath和requests应用详解
Mar 06 Python
Django调用百度AI接口实现人脸注册登录代码实例
Apr 23 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
Aug 22 #Python
用Pelican搭建一个极简静态博客系统过程解析
Aug 22 #Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 #Python
Django stark组件使用及原理详解
Aug 22 #Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 #Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 #Python
Django上线部署之IIS的配置方法
Aug 22 #Python
You might like
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
php页码形式分页函数支持静态化地址及ajax分页
2014/03/28 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
详解JavaScript树结构
2017/01/09 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
python select.select模块通信全过程解析
2017/09/20 Python
使用Scrapy爬取动态数据
2018/10/21 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
人事档案接收函
2014/01/12 职场文书
50岁生日感言
2014/01/23 职场文书
材料会计岗位职责
2014/03/06 职场文书
电子信息工程自荐信
2014/05/26 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
索尼ICF-5900W收音机测评
2022/04/24 无线电