You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tkinter仅识别fixed字体,如何加载CentOS系统中的其他字体?

解决CentOS下Tkinter无法识别系统字体的问题

你通过以下代码查询Tkinter可用字体:

import tkinter.font as font
print(font.families())

仅返回('fixed',),导致Text组件字体设置无效,且系统已安装的/usr/share/fonts/liberation下的Liberation字体无法被Tkinter识别,可按以下步骤解决:

  • 刷新系统字体缓存
    Tkinter依赖系统的fontconfig缓存,先执行命令更新缓存:

    fc-cache -fv
    

    该命令会扫描系统字体目录并生成新的缓存文件。

  • 确认fontconfig服务状态
    确保fontconfig服务正常运行,CentOS下可重启服务:

    systemctl restart fontconfig
    
  • 手动指定字体路径(可选)
    如果上述步骤无效,可通过环境变量告知Tkinter字体位置:

    • 启动脚本前设置环境变量:
      export TK_FONTS=/usr/share/fonts/liberation
      python your_script.py
      
    • 或者在Python代码内设置:
      import os
      os.environ['TK_FONTS'] = '/usr/share/fonts/liberation'
      import tkinter.font as font
      print(font.families())
      
  • 验证字体安装与识别
    用fc-list命令查看系统已识别的字体,确认Liberation字体存在:

    fc-list | grep Liberation
    

    如果没有输出,说明字体未正确安装,执行以下命令安装:

    yum install liberation-fonts
    

注意:执行完缓存更新后,需关闭所有正在运行的Python/Tkinter进程,重新启动脚本才能生效。

内容的提问来源于stack exchange,提问作者ptrck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 01:39:32