【问题标题】:matplotlib crashing Pythonmatplotlib 崩溃 Python
【发布时间】:2014-11-16 07:59:56
【问题描述】:

我是 Python 和 matplotlib 的新手。我编写的一个简单脚本崩溃了,我能够使用以下代码重现崩溃:

import matplotlib.pyplot as plt
plt.figure(1)
plt.figure(2)
#plt.show()

错误是python.exe has stopped working。如果我取消注释 plt.show(),它仍然会根据我关闭图的顺序崩溃(如果先关闭 2,则不会崩溃,如果先关闭 1,则会崩溃)。我使用的是 Windows 7、Python 3.4,并从 www.lfd.uci.edu/~gohlke/pythonlibs/ 安装了各个模块。是不是我的东西配置不正确或者对matplotlib的使用有什么误解?

【问题讨论】:

  • 您是在 Python 解释器中以交互方式输入,还是将其作为脚本运行?
  • 您使用的是哪个版本的 Python 和 Matplotlib 以及哪个环境?
  • 我在 PyCharm 3.4.1 中将其作为脚本运行,使用 Python 3.4.0 和 matplotlib 1.4.0,均为 64 位。

标签: python matplotlib


【解决方案1】:

您需要明确设置 TkAgg 后端。使用下面的代码,问题就解决了。

import matplotlib
matplotlib.use("TkAgg")
from matplotlib import pyplot as plt

请注意,在导入 pyplot 后设置 TkAgg 后端也不起作用;它也崩溃了。需要在导入 pyplot 之前进行设置。

【讨论】:

    【解决方案2】:

    我遇到了这个问题,我认为是我的代码中的某些行导致了这个错误,但实际上导入 matplotlib.pyplot 的行为正在扼杀我的程序。我首先以详细模式运行它来解决它:

    python -v [programname].py

    这显示了导入程序在崩溃之前执行的最后一个操作。对我来说,最后一行是:

    import 'PyQt5' # <_frozen_importlib_external.SourceFileLoader object at 0x000001F8EC9C0908>

    这向我表明依赖库 PyQt5 引起了问题,所以我运行了 pip install PyQt5,神奇地一切都开始工作了。

    【讨论】:

      【解决方案3】:

      这可能是 python 3.x 的问题

      我已经在我的 Windows 机器上尝试过使用 python 2.7,它运行得非常好!

      您可以将您的 python 降级到 2.7,或者如果您觉得为时已晚,为什么不尝试调用 close()

      Import matplotlib
      matplotlib.use('wxAgg')
      Import matplotlib.pyplot as plt
      # your scripts
      plt.close('all')
      

      【讨论】:

        【解决方案4】:

        当我更新到 Python 3.4 时,我在 OSX 中遇到了类似的问题。 IDLE 也崩溃了,并且有一个警告告诉我版本不稳定。

        我按照提示更新了 Tcl/Tk (8.5.9) 的版本 - http://www.python.org/download/mac/tcltk 解决了这个问题。

        【讨论】:

          【解决方案5】:

          对于 macOS,只需确保

          ~/.matplotlib/matplotlibrc 包含:

          backend: MacOSX
          

          除非您特别需要,否则您不需要其他后端。或者,也许您可​​以这样做:

          import matplotlib
          matplotlib.use("MacOSX")
          

          虽然我没有测试过。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-08-21
            • 1970-01-01
            • 2016-03-19
            • 1970-01-01
            • 2018-12-14
            • 2016-08-14
            • 1970-01-01
            • 2021-12-16
            相关资源
            最近更新 更多