【问题标题】:Error, Using deprecated class PySimpleApp after removing EPD错误,删除 EPD 后使用已弃用的类 PySimpleApp
【发布时间】:2013-02-15 03:41:05
【问题描述】:

我在 Mac OSX 10.8.2 上使用 spyder,我卸载了 Enthought。在我的代码中,我使用了 matplotlib 中的 pyplot。 但是,当我运行简单的绘图程序时,我不断收到以下警告。

 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/backends/backend_wx.py:1382: wxPyDeprecationWarning: Using deprecated class PySimpleApp. 
      wxapp = wx.PySimpleApp()

我尝试了 pip,手动安装 matplotlib 并没有帮助。我该怎么办? 这些是我与绘图相关的代码行:

markerSize=400;
fig = plt.gcf()
plt.scatter(X,Y,marker='+',s=markerSize)
circle=plt.Circle((X[i]+k*meshStep,Y[i]+j*meshStep),frequency/magnification,color='r');
fig.gca().add_artist(circle)
plt.xlim(min(X)-1,max(X)+1)
plt.ylim(min(Y)-1,max(Y)+1) 

在卸载 Enthought 之前我没有遇到这个问题,我的图有缩放和移动按钮,但现在我只得到图本身。

谢谢。

【问题讨论】:

  • 显然问题已解决。我刚刚删除了电脑上的任何 spyder 文件实例!特别是用户目录中的配置文件!

标签: python macos matplotlib wxpython


【解决方案1】:

您应该使用wx.App(False) 而不是wx.PySimpleAppPySimpleApp 在 wxPython 2.9 中已被弃用。 wx.App(False) 基本上做同样的事情。

【讨论】:

  • 好吧,问题是我根本没有使用 wx.App(False)!
  • 对,就是matplotlib还在用wx.PySimpleApp。您没有在 EPD 中看到它的原因是他们仍在使用早期的 wxPython 2.8,其中 wx.PySimpleApp 尚未被弃用。如果您将来遇到此问题,您可以通过在 matplotlib 之前创建自己的 wx.App 来解决此问题。根据您使用 matplotlib 的方式,您可能需要在导入 matplotlib 的任何模块之前运行的模块中执行此操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-09
  • 2023-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-23
相关资源
最近更新 更多