Matplotlib没有显示图(EPD兼容性问题)

时间:2013-04-12 09:27:20

标签: python-2.7 64-bit ubuntu-12.04 enthought epd-python

我最近在我的Ubuntu 12.04(64位)上安装了EPD 7.3-2(免费版)。 我在尝试使用ipython时遇到了一些问题,我收到了以下错误:

  

ImportError:Gtk *后端需要安装pygtk。

所以我找到了这篇文章:

https://support.enthought.com/entries/22961778-epd-for-mac-os-x-32-and-64-bit-versions

甚至认为它适用于Mac OSX,它确实可以在我的Linux机器上运行。我所做的修改是将后端放在这样的:

backend      : Qt4Agg #GTKAgg
backend.qt4 : PySide

所以它曾经是GTKAgg。但现在我遇到了一个新问题。当我尝试使用pylab绘制一个简单的情节时,例如:

from pylab import *
plot([1,2,3])
show()

没有弹出......我收到以下错误:

  

atexit._run_exitfuncs中的错误:Traceback(最近一次呼叫最后一次):
  文件   “/home/mela/Librairies/epd_free-7.3-2-rh5-x86_64/lib/python2.7/atexit.py”   第24行,在_run_exitfuncs中       func(* targs,** kargs)文件“/home/mela/Librairies/epd_free-7.3-2-rh5-x86_64/lib/python2.7/site-packages/matplotlib/_pylab_helpers.py”,第82行,在destroy_all中       manager.destroy()文件“/home/mela/Librairies/epd_free-7.3-2-rh5-x86_64/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.py”,   第367行,在毁灭中       self._widgetclosed)

     

RuntimeError:内部C ++对象(PySide.QtGui.QMainWindow)已被删除。

     

sys.exitfunc中的错误:   Traceback(最近一次调用最后一次):文件   “/home/mela/Librairies/epd_free-7.3-2-rh5-x86_64/lib/python2.7/atexit.py”   第24行,在_run_exitfuncs中       func(* targs,** kargs)
  在destroy_all中输入文件“/home/mela/Librairies/epd_free-7.3-2-rh5-x86_64/lib/python2.7/site-packages/matplotlib/_pylab_helpers.py”,第82行       manager.destroy()
  档案“/home/mela/Librairies/epd_free-7.3-2-rh5-x86_64/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.py”,   第367行,在毁灭中       self._widgetclosed)

     

RuntimeError:内部C ++对象(PySide.QtGui.QMainWindow)已被删除。

我真的不明白这意味着什么,或者我应该怎么做。 任何线索将不胜感激。

1 个答案:

答案 0 :(得分:0)

所以我发现了我的问题。 首先,从这个问题我不知道它试图关闭一个已经关闭的窗口,所以我搜索了为什么,看起来现在pyplot的显示应该在我添加pl.show之后直接关闭(block = True )。现在我有一个显示器,但也有一个分段错误。

在尝试不同的后端后,看起来TkAgg解决了这两个问题。所以没有兼容性问题,我可以看到我的情节。

PS:要从matplotlib更改后端,请转到~/.matplotlib并编辑文件matplotlibrc