wxPython Matplotlib.pyplot冲突?

时间:2017-11-26 05:30:48

标签: python macos user-interface wxpython wxpython-phoenix

今天使用wxPython时,我遇到了这个非常奇怪的错误。这个简单的代码工作正常:

    import wx

    app = wx.App()
    frame = wx.Frame(None, -1, 'simple.py')
    frame.Show()
    app.MainLoop()

但是,一旦我在matplotlib.pyplot添加了一个导入语句:

    import matplotlib.pyplot as plt

    # then same code as above...

简单窗口不再显示(没有错误,程序暂停)。有谁知道问题是什么?

环境:macOS High Sierra,Python 3.6.3,wxPython 4.0.0b2,matplotlib 2.1.0

谢谢!

1 个答案:

答案 0 :(得分:1)

我有同样的问题。它只发生在macOS上。我可以在Windows中运行程序,但不能运行Mac。我测试了不同版本的matplotlib无济于事。我想测试wxpython的“经典”版本,但我无法从SourceForge正确下载。

我通过在我的函数中导入matplotlib来完成绘图。这样运行没有错误,但也产生了一些信息警告:

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: The WX backend is deprecated. It's untested and will be removed in Matplotlib 3.0. Use the WXAgg backend instead. See Matplotlib usage FAQ for more info on backends. Use WXAgg instead. warnings.warn(message, mplDeprecation, stacklevel=1)

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/backends/backend_wx.py:319: wxPyDeprecationWarning: Call to deprecated item. Use DrawText instead. gfx_ctx.DrawRotatedText(s, x - xo, y - yo, rads)

所以看起来问题是由于matplotlib内部的一些wx弃用。

萨克森的罗尔夫斯的回答也对我有用,并没有发出警告。