歡迎您光臨本站 註冊首頁

在python image 中實現安裝中文字體

←手機掃碼閱讀     bom485332 @ 2020-06-10 , reply:0

如果一些應用需要到中文字體(如果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,文泉�A微米黑,文泉驛微米黑:style=Regular
 /usr/share/fonts/wqy-microhei.ttc: WenQuanYi Micro Hei Mono,文泉�A等��微米黑,文泉驛等寬微米黑: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: 蘭亭黑-簡,�m亭黑-��,Lantinghei SC:style=Demibold,中黑
 /System/Library/Assets/com_apple_MobileAsset_Font4/8d69c72f04dcc2dfc086aa401dbab7f8ec55d0bb.asset/AssetData/Kaiti.ttc: 楷體-繁,楷�w-繁,Kaiti TC:style=黑體,黑�w,Black

補充知識:Python內置自帶中文字體設置

有些代碼中的中文字體,在自己的環境不一定適用

可以通過如下代碼打印出自己電腦已經安裝的字體

找到其中的中文字體名稱放在 = 後即可,例如SimHei(黑體)等。

記得加單引號!!!
 記得加單引號!!!
 記得加單引號!!!

舉例:

plt.rcParams['font.family'] = 'SimHei'

查詢代碼:

  import matplotlib.font_manager as fm    for font in fm.fontManager.ttflist:   print(font.name)

 

結果:

                                                   

   


[bom485332 ] 在python image 中實現安裝中文字體已經有357次圍觀

http://coctec.com/docs/python/shhow-post-237757.html