0

我最近在我的 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 管理器中.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 函数中(*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 管理器中.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) 已删除。

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

4

1 回答 1

0

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

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

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

于 2013-04-12T11:53:44.960 回答