You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于Matplotlib字体缓存构建警告及1.5.1版本问题的咨询

解决Matplotlib 1.5.1的字体缓存构建警告问题

这个警告其实是Matplotlib首次运行时的正常小状况,尤其是1.5.1这类老版本,下面给你几个实用的处理办法:

1. 首次运行后自动消失

这个UserWarning只是在告诉你:Matplotlib正在通过fc-list工具扫描系统字体并构建缓存。第一次运行完成后,后续再执行Matplotlib代码就不会再弹出这个警告了。缓存会存在本地目录(比如Linux下的~/.cache/matplotlib,Windows下的AppData\Local\Matplotlib\Cache),之后直接调用缓存就行,速度会快很多。

2. 手动预生成字体缓存

如果你不想等第一次运行代码时的延迟,可以手动触发缓存构建:
打开终端/命令提示符,执行以下命令:

python -c "import matplotlib.pyplot as plt; plt.plot([1,2,3])"

运行完这个命令后,字体缓存就已经生成好了,之后再运行你的业务代码就不会看到这个警告了。

3. 临时禁用警告(不推荐)

如果实在不想看到这个提示,可以在代码开头添加警告过滤或者指定默认字体:

方式一:过滤特定警告

import warnings
# 过滤Matplotlib的字体缓存UserWarning
warnings.filterwarnings("ignore", category=UserWarning, module="matplotlib")

import matplotlib.pyplot as plt
# 你的绘图代码...

方式二:指定默认字体,减少字体扫描

import matplotlib
# 指定一个系统已有的字体作为默认,避免Matplotlib扫描所有字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 中文环境推荐用这个,英文环境可以用'Arial'
matplotlib.rcParams['axes.unicode_minus'] = False  # 顺便解决负号显示异常问题

import matplotlib.pyplot as plt
# 你的绘图代码...

⚠️ 注意:禁用警告只是隐藏提示,并没有跳过缓存构建的过程,还是推荐前两种方法更稳妥。

4. 升级Matplotlib(长期解决方案)

1.5.1是比较老旧的版本了,后续的Matplotlib版本(比如2.x及以上)在字体缓存机制上做了优化,不仅能减少这类警告,还能提升字体加载速度和兼容性。如果你的代码兼容新版本,可以用pip升级:

pip install --upgrade matplotlib

升级前建议备份代码,或者在虚拟环境中操作,避免影响现有项目的稳定性。

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

火山引擎 最新活动