
spyder启动内核时报错“matplotlib is building the font cache; this may take a moment.”,表面看是初始化提示,实则常伴随内核卡死或崩溃——根本原因多为matplotlib字体缓存(font cache)文件损坏、路径不可写或json缓存文件格式异常。该问题在首次运行anaconda或系统字体库更新后高频出现。
要彻底解决,需手动清除Matplotlib生成的缓存文件。操作步骤如下:
-
定位缓存目录:在Spyder的IPython控制台(或任意Python环境)中执行:
import matplotlib as mpl print(mpl.get_cachedir())
输出类似路径(Windows常见为 C:\Users\YourName\.matplotlib,macOS/Linux为 /Users/yourname/.matplotlib 或 ~/.matplotlib)。
-
删除缓存文件:进入该目录,找到并删除以下文件(注意:仅删缓存文件,勿删整个文件夹):
- fontlist-*.json(如 fontlist-v330.json)
- tex.cache/ 文件夹(如有,可一并清空)
⚠️ 注意事项: 不要删除 matplotlibrc 配置文件,否则将丢失自定义设置; 若目录无写入权限(如Linux/macOS下权限为只读),请先修正权限:chmod 755 ~/.matplotlib; 清理后首次重启Spyder时,Matplotlib会自动重建缓存(耗时数秒属正常,无需干预)。
-
预防建议:
- 避免在多用户共用环境中直接修改 .matplotlib 目录;
- 可通过设置环境变量强制指定缓存路径(适用于容器或CI场景):
export MPLCONFIGDIR="/tmp/matplotlib_cache"
完成上述操作后,重启Spyder,内核即可正常启动。该方法兼容Anaconda全版本(包括Spyder 5.x / 6.x + Matplotlib 3.5+),是官方推荐的轻量级修复方案。










