Matplotlib wxWidget在Cygwin上打印缺少的按钮图像

Matplotlib wxWidget在Cygwin上打印缺少的按钮图像,matplotlib,cygwin,wxwidgets,Matplotlib,Cygwin,Wxwidgets,截图: 导致此问题的原因是什么:是Cygwin问题,还是wx/wxPython问题,还是Matplotlib问题 除了在每个绘图上弹出缺少按钮图像的错误之外,一切正常 后天:由于我wx使用本机Windows图形界面,无需安装X服务器和gtk,它基本上是Windows编译而不是Cygwin编译,因此它不理解Cygwin POSIX路径,而Cygwin软件包可以使用它 不仅MPL会以这种方式出现问题,任何将Cygwin资源作为文件名传递给wx的wx包都会出现问题。一种解决方法是传递python对象而

截图:

导致此问题的原因是什么:是Cygwin问题,还是wx/wxPython问题,还是Matplotlib问题

除了在每个绘图上弹出缺少按钮图像的错误之外,一切正常

后天:由于我wx使用本机Windows图形界面,无需安装X服务器和gtk,它基本上是Windows编译而不是Cygwin编译,因此它不理解Cygwin POSIX路径,而Cygwin软件包可以使用它

不仅MPL会以这种方式出现问题,任何将Cygwin资源作为文件名传递给wx的wx包都会出现问题。一种解决方法是传递python对象而不是路径,因此对于上面的示例,这可以是如下解决方法:

#   bmp = wx.Bitmap(bmpFilename)

    wxf = open(bmpFilename, 'rb')
    bmp = wx.BitmapFromImage(wx.ImageFromStream(wxf, wx.BITMAP_TYPE_ANY))
    wxf.close()
Matplotlib使用_load_bitmapfilename作为str函数,通过wx.bitmapfilename将这些按钮图形传递给wx。如下所示修补后端_wx.py:

#   bmp = wx.Bitmap(bmpFilename)

    wxf = open(bmpFilename, 'rb')
    bmp = wx.BitmapFromImage(wx.ImageFromStream(wxf, wx.BITMAP_TYPE_ANY))
    wxf.close()
为Matplotlib解决此问题,并且运行时不会出现问题


我对适用于所有wx应用程序的更健壮的解决方案感兴趣

这与以下问题相同吗:?您使用的是什么版本的mpl?它是mpl 1.1.1rc2。我在Winpdb下运行示例脚本,它无法捕获任何异常。我觉得这是wx的问题。如果我知道了,我会发帖的