Ошибка libpng: ошибка чтения при использовании matplotlib после установки usetex = True - PullRequest
0 голосов
/ 08 января 2020

На двух разных машинах, работающих под Windows 10, я получаю ошибку libpng error: Read Error, приводящую к сбою python при попытке построить после установки опции usetex=True в matplotlib. Это работало без проблем, прежде чем на этой машине, я не уверен, что изменилось с тех пор.

Я пытался установить различные версии libpng (1.6.32, 1.6.34, 1.6.36, 1.6.37), но все из них приводят к одинаковому результату.

Минимальный пример, непосредственно после создания среды fre sh с conda create --name libpngtest python=3 matplotlib libpng:

>>> import matplotlib.pyplot as plt
>>> from matplotlib import rc
>>> rc('text', usetex=True)
>>> plt.plot(1,2)
[<matplotlib.lines.Line2D object at 0x00000193015A8908>]
>>> plt.show()

В этот момент иногда консоль python просто вылетает без какого-либо сообщения, но я также видел напечатанный libpng error: Read Error до его сбоя. В блокноте / лаборатории jupyter ядро ​​перезапустится, и в терминале, где jupyter работает между сообщениями jupyter, появляется libpng error: Read Error.

На данный момент я не уверен, является ли это проблемой python или Проблема TeX (у меня установлен MikTeX 2.9, который, кажется, работает нормально), но был бы признателен за любые подсказки, которые у вас могут быть.


Редактировать: Вывод после установки plt.set_loglevel("debug"):

DEBUG:matplotlib.texmanager:serif font is not compatible with usetex.
DEBUG:matplotlib.texmanager:serif font is not compatible with usetex.
DEBUG:matplotlib.texmanager:family: serif, font: Computer Modern Roman, info: ('cmr', '')
DEBUG:matplotlib.texmanager:sans-serif font is not compatible with usetex.
DEBUG:matplotlib.texmanager:sans-serif font is not compatible with usetex.
DEBUG:matplotlib.texmanager:family: sans-serif, font: Computer Modern Sans Serif, info: ('cmss', '')
DEBUG:matplotlib.texmanager:cursive font is not compatible with usetex.
DEBUG:matplotlib.texmanager:cursive font is not compatible with usetex.
DEBUG:matplotlib.texmanager:family: cursive, font: Zapf Chancery, info: ('pzc', '\\usepackage{chancery}')
DEBUG:matplotlib.texmanager:monospace font is not compatible with usetex.
DEBUG:matplotlib.texmanager:monospace font is not compatible with usetex.
DEBUG:matplotlib.texmanager:family: monospace, font: Computer Modern Typewriter, info: ('cmtt', '')
DEBUG:matplotlib.texmanager:following keys changed: ['text.latex.preamble', 'text.latex.unicode', 'text.latex.preview', 'font.family', 'font.serif', 'font.sans-serif', 'font.cursive', 'font.monospace']
DEBUG:matplotlib.texmanager:text.latex.preamble : None       ->
DEBUG:matplotlib.texmanager:text.latex.unicode  : None       -> True
DEBUG:matplotlib.texmanager:text.latex.preview  : None       -> False
DEBUG:matplotlib.texmanager:font.family         : None       -> ['sans-serif']
DEBUG:matplotlib.texmanager:font.serif          : None       -> ['DejaVu Serif', 'Bitstream Vera Serif', 'Computer Modern Roman', 'New Century Schoolbook', 'Century Schoolbook L', 'Utopia', 'ITC Bookman', 'Bookman', 'Nimbus Roman No9 L', 'Times New Roman', 'Times', 'Palatino', 'Charter', 'serif']
DEBUG:matplotlib.texmanager:font.sans-serif     : None       -> ['DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', 'sans-serif']
DEBUG:matplotlib.texmanager:font.cursive        : None       -> ['Apple Chancery', 'Textile', 'Zapf Chancery', 'Sand', 'Script MT', 'Felipa', 'cursive']
DEBUG:matplotlib.texmanager:font.monospace      : None       -> ['DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Computer Modern Typewriter', 'Andale Mono', 'Nimbus Mono L', 'Courier New', 'Courier', 'Fixed', 'Terminal', 'monospace']
DEBUG:matplotlib.texmanager:RE-INIT
old fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e
DEBUG:matplotlib.texmanager:serif font is not compatible with usetex.
DEBUG:matplotlib.texmanager:serif font is not compatible with usetex.
DEBUG:matplotlib.texmanager:family: serif, font: Computer Modern Roman, info: ('cmr', '')
DEBUG:matplotlib.texmanager:sans-serif font is not compatible with usetex.
DEBUG:matplotlib.texmanager:sans-serif font is not compatible with usetex.
DEBUG:matplotlib.texmanager:family: sans-serif, font: Computer Modern Sans Serif, info: ('cmss', '')
DEBUG:matplotlib.texmanager:cursive font is not compatible with usetex.
DEBUG:matplotlib.texmanager:cursive font is not compatible with usetex.
DEBUG:matplotlib.texmanager:family: cursive, font: Zapf Chancery, info: ('pzc', '\\usepackage{chancery}')
DEBUG:matplotlib.texmanager:monospace font is not compatible with usetex.
DEBUG:matplotlib.texmanager:monospace font is not compatible with usetex.
DEBUG:matplotlib.texmanager:family: monospace, font: Computer Modern Typewriter, info: ('cmtt', '')
DEBUG:matplotlib.texmanager:fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e
DEBUG:matplotlib.dviread:Dvi: C:\Users\...\.matplotlib\tex.cache\1acea6f6c115d0ec7a634ed0529287b9.dvi
DEBUG:matplotlib.dviread:Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
DEBUG:matplotlib.dviread:['kpsewhich', 'cmss10.tfm']
DEBUG:matplotlib.dviread:stdout:
b'C:/Program Files/MiKTeX 2.9/fonts/tfm/public/cm/cmss10.tfm\r\n'
DEBUG:matplotlib.dviread:stderr:
b''
DEBUG:matplotlib.dviread:opening tfm file C:/Program Files/MiKTeX 2.9/fonts/tfm/public/cm/cmss10.tfm
DEBUG:matplotlib.dviread:lh=18, bc=0, ec=127, nw=52, nh=16, nd=11
DEBUG:matplotlib.dviread:['kpsewhich', 'cmss10.vf']
DEBUG:matplotlib.texmanager:fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e
DEBUG:matplotlib.dviread:Dvi: C:\Users\...\.matplotlib\tex.cache\d598be7bdc6e0eeebdc83c75321a7705.dvi
DEBUG:matplotlib.dviread:Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
DEBUG:matplotlib.dviread:['kpsewhich', 'cmr10.tfm']
DEBUG:matplotlib.dviread:stdout:
b'C:/Program Files/MiKTeX 2.9/fonts/tfm/public/cm/cmr10.tfm\r\n'
DEBUG:matplotlib.dviread:stderr:
b''
DEBUG:matplotlib.dviread:opening tfm file C:/Program Files/MiKTeX 2.9/fonts/tfm/public/cm/cmr10.tfm
DEBUG:matplotlib.dviread:lh=18, bc=0, ec=127, nw=36, nh=16, nd=10
DEBUG:matplotlib.dviread:['kpsewhich', 'cmr10.vf']
DEBUG:matplotlib.dviread:['kpsewhich', 'cmmi10.tfm']
DEBUG:matplotlib.dviread:stdout:
b'C:/Program Files/MiKTeX 2.9/fonts/tfm/public/cm/cmmi10.tfm\r\n'
DEBUG:matplotlib.dviread:stderr:
b''
DEBUG:matplotlib.dviread:opening tfm file C:/Program Files/MiKTeX 2.9/fonts/tfm/public/cm/cmmi10.tfm
DEBUG:matplotlib.dviread:lh=18, bc=0, ec=127, nw=98, nh=15, nd=9
DEBUG:matplotlib.dviread:['kpsewhich', 'cmmi10.vf']
DEBUG:matplotlib.texmanager:fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e
DEBUG:matplotlib.dviread:Dvi: C:\Users\...\.matplotlib\tex.cache\1acea6f6c115d0ec7a634ed0529287b9.dvi
DEBUG:matplotlib.dviread:Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
DEBUG:matplotlib.texmanager:fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e
DEBUG:matplotlib.dviread:Dvi: C:\Users\...\.matplotlib\tex.cache\14cf46b44d83e91d3e4f12cc60007df3.dvi
DEBUG:matplotlib.dviread:Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
DEBUG:matplotlib.texmanager:fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e
DEBUG:matplotlib.dviread:Dvi: C:\Users\...\.matplotlib\tex.cache\1acea6f6c115d0ec7a634ed0529287b9.dvi
DEBUG:matplotlib.dviread:Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
DEBUG:matplotlib.texmanager:fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e
DEBUG:matplotlib.dviread:Dvi: C:\Users\...\.matplotlib\tex.cache\217de38979bbb592496a29d181b7bbc4.dvi
DEBUG:matplotlib.dviread:Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
DEBUG:matplotlib.texmanager:fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e
DEBUG:matplotlib.dviread:Dvi: C:\Users\...\.matplotlib\tex.cache\1acea6f6c115d0ec7a634ed0529287b9.dvi
DEBUG:matplotlib.dviread:Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
DEBUG:matplotlib.texmanager:fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e
DEBUG:matplotlib.dviread:Dvi: C:\Users\...\.matplotlib\tex.cache\3233f296f4d6994ca99a0d418d6458d8.dvi
DEBUG:matplotlib.dviread:Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
DEBUG:matplotlib.texmanager:fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e
DEBUG:matplotlib.dviread:Dvi: C:\Users\...\.matplotlib\tex.cache\1acea6f6c115d0ec7a634ed0529287b9.dvi
DEBUG:matplotlib.dviread:Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
DEBUG:matplotlib.texmanager:fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e
DEBUG:matplotlib.dviread:Dvi: C:\Users\...\.matplotlib\tex.cache\e2c00e1750b187927439ebc0ca3a1a38.dvi
DEBUG:matplotlib.dviread:Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
DEBUG:matplotlib.texmanager:fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e
DEBUG:matplotlib.texmanager:fontconfig: sans-serifcmrcmsspzccmttd41d8cd98f00b204e9800998ecf8427e

1 Ответ

0 голосов
/ 08 января 2020

Я нашел способ обойти эту проблему, хотя я бы не назвал это решением (с благодарностью anntzer в репозитории matplotlib github, https://github.com/matplotlib/matplotlib/issues/16163). Из matplotlib 3.2.0 libpng больше не будет использоваться, поэтому возможен обходной путь установки matplotlib 3.2.0-r c.

...