Open
Description
Bug summary
Somewhat a duplicate of #22281, but we should be doing something for users to rebuild the font cache if there is a failure in findfont
.
Code for reproduction
New conda environment, with matplotlib 3.7.0
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.xlabel('$\delta$')
plt.show()
Actual outcome
findfont: Font family ['cmsy10'] not found. Falling back to DejaVu Sans.
Traceback (most recent call last):
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/backend_bases.py", line 1222, in _on_timer
ret = func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/backends/backend_macosx.py", line 68, in callback_func
callback()
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/backends/backend_macosx.py", line 88, in _draw_idle
self.draw()
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/backends/backend_macosx.py", line 50, in draw
super().draw()
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/backends/backend_agg.py", line 400, in draw
self.figure.draw(self.renderer)
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/artist.py", line 95, in draw_wrapper
result = draw(artist, renderer, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/artist.py", line 72, in draw_wrapper
return draw(artist, renderer)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/figure.py", line 3125, in draw
mimage._draw_list_compositing_images(
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/image.py", line 131, in _draw_list_compositing_images
a.draw(renderer)
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/artist.py", line 72, in draw_wrapper
return draw(artist, renderer)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/axes/_base.py", line 3066, in draw
mimage._draw_list_compositing_images(
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/image.py", line 131, in _draw_list_compositing_images
a.draw(renderer)
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/artist.py", line 72, in draw_wrapper
return draw(artist, renderer)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/axis.py", line 1379, in draw
self.label.draw(renderer)
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/artist.py", line 72, in draw_wrapper
return draw(artist, renderer)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/text.py", line 752, in draw
bbox, info, descent = self._get_layout(renderer)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/text.py", line 386, in _get_layout
w, h, d = _get_text_metrics_with_cache(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/text.py", line 97, in _get_text_metrics_with_cache
return _get_text_metrics_with_cache_impl(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/text.py", line 105, in _get_text_metrics_with_cache_impl
return renderer_ref().get_text_width_height_descent(text, fontprop, ismath)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/backends/backend_agg.py", line 230, in get_text_width_height_descent
self.mathtext_parser.parse(s, self.dpi, prop)
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/mathtext.py", line 226, in parse
return self._parse_cached(s, dpi, prop)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/mathtext.py", line 240, in _parse_cached
fontset = fontset_class(prop, load_glyph_flags)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/_mathtext.py", line 603, in __init__
self.bakoma = BakomaFonts(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/_mathtext.py", line 385, in __init__
fullpath = findfont(val)
^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/font_manager.py", line 1259, in findfont
ret = self._findfont_cached(
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/font_manager.py", line 1410, in _findfont_cached
return self.findfont(default_prop, fontext, directory,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jklymak/miniconda3/envs/boo/lib/python3.11/site-packages/matplotlib/font_manager.py", line 1263, in findfont
raise ret
ValueError: Failed to find font DejaVu Sans:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0, and fallback to the default font was disabled
Expected outcome
A figure with a \delta symbol for an xlabel.
Additional information
Works fine if I clear the font list from ~/.matplotlib
.
Operating system
MacOS
Matplotlib Version
3.7.0
Matplotlib Backend
No response
Python version
3.11
Jupyter version
No response
Installation
conda