在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中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
Jul 06 Python
python使用标准库根据进程名如何获取进程的pid详解
Oct 31 Python
python实现K最近邻算法
Jan 29 Python
Python selenium抓取微博内容的示例代码
May 17 Python
tensorflow 获取模型所有参数总和数量的方法
Jun 14 Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 Python
Django--权限Permissions的例子
Aug 28 Python
用python解压分析jar包实例
Jan 16 Python
Pycharm快捷键配置详细整理
Oct 13 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 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输入输出流学习笔记
2015/05/12 PHP
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
JavaScript实现简单生成随机颜色的方法
2017/09/21 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
js 函数性能比较方法
2020/08/24 Javascript
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
Python下使用Psyco模块优化运行速度
2015/04/05 Python
python查看zip包中文件及大小的方法
2015/07/09 Python
python开发之文件操作用法实例
2015/11/13 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
机械工程系毕业生求职信
2013/09/27 职场文书
小学新学期教师寄语
2014/01/18 职场文书
小学三年级数学教学反思
2014/01/31 职场文书
大学生新学期计划书
2014/04/28 职场文书
文明礼仪倡议书
2015/04/28 职场文书
如何用python绘制雷达图
2021/04/24 Python
Java使用Unsafe类的示例详解
2021/09/25 Java/Android
教你一步步实现一个简易promise
2021/11/02 Javascript