libpng错误:设置usetex=True后使用matplotlib时发生读取错误

2024-06-01 11:58:47 发布

您现在位置:Python中文网/ 问答频道 /正文

在运行Windows 10的两台不同的计算机上,我在matplotlib中设置选项usetex=True后尝试打印时遇到错误libpng error: Read Error,导致python崩溃。这在这台机器上工作过,没有问题,我不知道从那以后发生了什么变化

我尝试过安装不同的libpng版本(1.6.32、1.6.34、1.6.36、1.6.37),但所有这些版本都会导致相同的结果

在使用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笔记本/实验室中,内核将重新启动,并且libpng error: Read Error出现在jupyter在jupyter消息之间运行的终端中

现在我不确定这是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

Tags: debugptmatplotlibiswithnotcompatiblefont
1条回答
网友
1楼 · 发布于 2024-06-01 11:58:47

我已经找到了回避这个问题的方法,尽管我不会称之为解决方案(这要归功于matplotlib github repo上的anntzer,https://github.com/matplotlib/matplotlib/issues/16163)。从matplotlib 3.2.0开始,将不再使用libpng,因此安装matplotlib 3.2.0-rc是一种可能的解决方法

相关问题 更多 >