调用savefig()多次会导致Spyder IDE崩溃/IPython内核死机。

4

编辑2:问题已解决。完全是由于不好的Windows 10 Pro v.1809更新引起的。显然,那个特定版本本来就不应该发布。我们刚刚回退了更新,现在一切都正常工作了。无论如何,感谢大家的努力。

编辑:我将错误报告移动到matplotlib Github。通过命令提示符执行*.py文件可以重现此错误。重要的是要注意,它只发生在*.png文件格式中,因此在问题修复之前,我将使用*.jpg格式(也许会在下一个Windows更新中修复?)

错误摘要

多次调用savefig()会导致Spyder IDE / IPython Kernel崩溃。通常情况下,第一次可以成功保存图像,有时甚至可以多次保存,但最终会导致崩溃。奇怪的是,有时Spyder会立即关闭而没有错误消息,而其他时候它会显示“Kernel死亡。重新启动”。

昨天一切正常,今天在 Windows 更新之后,savefig 开始出现这些问题。问题与目标目录无关。在第一次出现后,我通过 conda 更新了所有内容,但不幸的是这并没有帮助。

有人遇到同样的问题吗,特别是在最新的 Windows 更新后?我很高兴听取任何建议,提前感谢。

复制代码

import matplotlib.pyplot as plt

for i in range(10):
    x=[1,2,3]
    y=[3,4,5]

    plt.figure()
    plt.plot(x,y)
    plt.savefig('test{0:0d}.png'.format(i))

系统信息:

  • 操作系统:Windows 10 Pro(64位),版本号为1809,于2018年10月5日安装,构建版本为17763.1
  • Python版本:3.6.6
  • Spyder版本:3.3.1
  • IPython版本:7.0.1
  • Matplotlib版本:3.0.0

2
这可能更适合在 Github 上进行讨论?开发人员可能能够给你一些有关如何正确调试的提示,以便他们可以进一步调查。 - roganjosh
1
Spyder维护者在此) 这个问题在Jupyter笔记本中也会出现吗? - Carlos Cordoba
2
你尝试过在调用 savefig() 后关闭当前图形 (plt.close()) 吗?也许这是因为打开了太多的图形而导致的问题?10个图形并不算太多,但也许可以帮助缩小问题的范围... - Thomas Kühn
@roganjosh 这可能是个好主意 - 但是哪一个?我已经在matplotlib的github上发布了它,但它立即被关闭,因为他怀疑这可能是spyder/anaconda的问题。 - Richard
@CarlosCordoba 我刚刚从Anaconda提示符中执行了相同的测试脚本,它完全正常。看起来这确实是一个Spyder的问题。我应该在其他地方创建一个错误报告,比如Github,还是这个平台对你有用?我也尝试了从头重新安装Anaconda,但这并没有解决问题。像Thomas Kühn建议的那样关闭图形也没有帮助。不幸的是,Windows更新是一个功能更新,无法撤消,所以我需要找到另一个解决方案。 - Richard
1个回答

3
问题已经解决了。这完全是由于糟糕的Windows 10 Pro v.1809更新引起的。显然,那个特定版本本来就不应该发布。我们刚刚回滚了更新,现在一切都正常了。无论如何,感谢大家的努力。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接