Получил ошибку «Не удалось преобразовать глиф в растровое изображение» при параллельном запуске matplotlib fig.savefig () - PullRequest
0 голосов
/ 10 июня 2019

Недавно мы получали эту ошибку «Не удалось преобразовать глиф в растровое изображение» время от времени после того, как мы внедрили многопроцессное решение конвейера. То есть может быть несколько процессов, построение и сохранение рисунков одновременно. Мы удалили все отдельные функции fig.savefig (), вызываемые на верхнем уровне, и заставили использовать функцию util в каждом месте. Теперь ошибка восходит к последней функции fig.savefig () внутри утилиты, что было довольно плохо. Казалось, что чем сложнее фигура, чем больше процессов запущено одновременно, тем выше вероятность возникновения этой проблемы. Не уверен, что это проблема, связанная со шрифтами или проблема с библиотекой matplotlib. Типичное сообщение об ошибке выглядит следующим образом:

   File "analysis/util.py", line 1041, in save_figures
    fig.savefig(full_path, pad_inches=pad_inches, dpi=dpi)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/figure.py", line 2062, in savefig
    self.canvas.print_figure(fname, **kwargs)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/backend_bases.py", line 2263, in print_figure
    **kwargs)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 517, in print_png
    FigureCanvasAgg.draw(self)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 437, in draw
    self.figure.draw(self.renderer)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/figure.py", line 1493, in draw
    renderer, self, artists, self.suppressComposite)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/image.py", line 141, in _draw_list_compositing_images
    a.draw(renderer)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/axes/_base.py", line 2635, in draw
    mimage._draw_list_compositing_images(renderer, self, artists)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/image.py", line 141, in _draw_list_compositing_images
    a.draw(renderer)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/text.py", line 755, in draw
    ismath=ismath, mtext=mtext)
  File "/root/eureka1.0/local/lib/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 212, in draw_text
    font.draw_glyphs_to_bitmap(antialiased=rcParams['text.antialiased'])
RuntimeError: In draw_glyphs_to_bitmap: Could not convert glyph to bitmap
matplotlib
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...