Python Docker 镜像中安装中文字体及本地配置指南
本文详解如何在Python Docker镜像中安装中文字体以解决中文显示乱码问题。通过修改Dockerfile使用apt-get安装字体支持库,并复制字体文件至指定目录,最后执行fc-cache更新缓存。同时提供在本地Python环境中查询和设置中文字体的方法,如使用SimHei黑体,确保跨平台开发环境的一致性。
Docker镜像中文字体安装方案
当某些Python应用(例如pygraphviz)需要渲染中文内容时,若基础镜像未预装中文字体,会导致中文显示为乱码。因此,必须在构建的Docker镜像中手动安装中文字体支持。
标准的Python官方Docker镜像默认不包含任何中文字体资源。
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
完成Dockerfile编写后,需重新构建Docker镜像。
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字体文件可从其他桌面操作系统中获取。例如,在macOS系统中可通过以下命令查找可用的中文字体路径:
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环境字体配置
补充知识:Python本地环境中的中文字体设置方法。
在Docker镜像中成功安装字体后,本地开发环境中的代码可能仍无法直接识别该字体,因为本地系统并未安装相同字体。
可以通过运行特定Python代码来打印出当前电脑环境中已安装的所有字体列表。
在输出的字体列表中,找到需要的中文字体名称(如SimHei,即黑体),将其赋值给相应的字体配置参数即可。
注意:在代码中指定字体名称时,必须使用单引号包裹字体名。务必加单引号!!!务必加单引号!!!务必加单引号!!!
具体配置示例如下:
plt.rcParams['font.family'] = 'SimHei'
用于查询本地已安装字体的Python代码如下:
import matplotlib.font_manager as fm
for font in fm.fontManager.ttflist:
print(font.name)
import matplotlib.font_manager as fm for font in fm.fontManager.ttflist: print(font.name)

以上关于在Python Docker镜像中安装中文字体及本地配置的方法即为全部内容,希望能为读者提供有效参考。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













