我最近在我的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)已被删除。
我真的不明白这意味着什么,或者我应该怎么做。 任何线索将不胜感激。
答案 0 :(得分:0)
所以我发现了我的问题。 首先,从这个问题我不知道它试图关闭一个已经关闭的窗口,所以我搜索了为什么,看起来现在pyplot的显示应该在我添加pl.show之后直接关闭(block = True )。现在我有一个显示器,但也有一个分段错误。
在尝试不同的后端后,看起来TkAgg解决了这两个问题。所以没有兼容性问题,我可以看到我的情节。
PS:要从matplotlib更改后端,请转到~/.matplotlib
并编辑文件matplotlibrc