更新的 matplotlib 包不适用于 wxPython

Updated matplotlib package does not work with wxPython

我运行遇到了 wxPython 和 matplotlib 之间奇怪的兼容性问题。

import wx
import pylab
app = wx.App(False)
app.frame = wx.Frame(None)
app.frame.Centre()
app.frame.Show()

使用 matplotlib 1.5.0 或更高版本,此代码不会 运行 -- 它挂起且没有错误:

app = wx.App(False)

如果我注释掉 import pylab,它工作正常。 import matplotlib 不会导致错误,但 import matplotlib.pyplot as plt 会。

使用 matplotlib 1.4.2,这段代码可以正常工作,包括 pylab 导入。

我在这里寻找可能的更改:http://matplotlib.org/1.5.0/api/api_changes.html,但似乎没有任何相关内容。

我在 OSX El Capitan,使用 wxPython 3.0.2.0。

有什么地方出了问题吗?

这个问题似乎在 matplotlib 1.5.1 中得到了解决。此外,上面的代码需要包含行 matplotlib.use('WXAgg')。这确保后端设置为 wxPython,而不是 'Qt4Agg',这是 matplotlib 默认值。

这里有更多关于这个问题的讨论:https://github.com/matplotlib/matplotlib/issues/5737