Re: [問題] 請問 matplotlib 要如何 show()

看板Python作者 (liner)時間16年前 (2009/02/17 09:14), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串3/3 (看更多)

02/16 11:48,
check: # If this fails your Python ...
02/16 11:48
感謝 yungyuc,不過我之前都使用 tarball 安裝,大概是因為這樣,整個相依性都掛了, 搞到不清楚到底是誰有問題,後來決定整個重來,除了 networkx、psyco 之外, 全都使用系統套件安裝,總共安裝了 numpy、matplotlib、tkinter、scipy 及其套件, 像是 pygtk、pyobject、pycairo、gtk、tk、tcl 之類的全都順便安裝, 因為不確定可能會少什麼的情況下,只好全部都安裝,以確保不會少東西, 不過還是出現了以下錯誤: $HOME=/root CONFIGDIR=/root/.matplotlib matplotlib data path /usr/lib64/python2.5/site-packages/matplotlib/mpl-data loaded rc file /usr/lib64/python2.5/site-packages/matplotlib/mpl-data/matplotlibrc matplotlib version 0.98.1 verbose.level helpful interactive is False units is False platform is linux2 Using fontManager instance from /root/.matplotlib/fontManager.cache numerix numpy 1.2.0 Traceback (most recent call last): File "1.py", line 1, in <module> from pylab import * File "/usr/lib64/python2.5/site-packages/pylab.py", line 1, in <module> from matplotlib.pylab import * File "/usr/lib64/python2.5/site-packages/matplotlib/pylab.py", line 247, in <module> from matplotlib.pyplot import * File "/usr/lib64/python2.5/site-packages/matplotlib/pyplot.py", line 39, in <module> new_figure_manager, draw_if_interactive, show = pylab_setup() File "/usr/lib64/python2.5/site-packages/matplotlib/backends/__init__.py", line 20, in pylab_setup globals(),locals(),[backend_name]) File "/usr/lib64/python2.5/site-packages/matplotlib/backends/backend_gtkagg.py", line 10, in <module> from matplotlib.backends.backend_gtk import gtk, FigureManagerGTK, FigureCanvasGTK,\ File "/usr/lib64/python2.5/site-packages/matplotlib/backends/backend_gtk.py", line 7, in <module> import gtk; gdk = gtk.gdk File "/usr/lib64/python2.5/site-packages/gtk-2.0/gtk/__init__.py", line 79, in <module> _init() File "/usr/lib64/python2.5/site-packages/gtk-2.0/gtk/__init__.py", line 67, in _init _gtk.init_check() RuntimeError: could not open display 查了資料後發現,問題還是在 backend,安裝好的 matplotlibrc 初始設定是 GTKAgg, 於是我就改成 TkAgg, $HOME=/root CONFIGDIR=/root/.matplotlib matplotlib data path /usr/lib64/python2.5/site-packages/matplotlib/mpl-data loaded rc file /root/.matplotlib/matplotlibrc matplotlib version 0.98.1 verbose.level helpful interactive is False units is False platform is linux2 Using fontManager instance from /root/.matplotlib/fontManager.cache numerix numpy 1.2.0 backend TkAgg version 8.5 Traceback (most recent call last): File "1.py", line 2, in <module> plot([1,2,3]) File "/usr/lib64/python2.5/site-packages/matplotlib/pyplot.py", line 1947, in plot b = ishold() File "/usr/lib64/python2.5/site-packages/matplotlib/pyplot.py", line 396, in ishold return gca().ishold() File "/usr/lib64/python2.5/site-packages/matplotlib/pyplot.py", line 496, in gca ax = gcf().gca(**kwargs) File "/usr/lib64/python2.5/site-packages/matplotlib/pyplot.py", line 218, in gcf return figure() File "/usr/lib64/python2.5/site-packages/matplotlib/pyplot.py", line 204, in figure **kwargs) File "/usr/lib64/python2.5/site-packages/matplotlib/backends/backend_tkagg.py", line 87, in new_figure_manager window = Tk.Tk() File "/usr/lib64/python2.5/lib-tk/Tkinter.py", line 1636, in __init__ self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) _tkinter.TclError: no display name and no $DISPLAY environment variable 依然有問題,後來看到裡面支援比較多的是 Cairo 和 GDK,於是就改成 Cairo 來試試, 想不到就可以正確的把圖 show() 出來了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.25.118.144

02/17 09:27, , 1F
通常 TkAgg 是最簡單的
02/17 09:27, 1F

02/17 09:28, , 2F
debian/ubuntu 包的 matplotlib 都沒有問題
02/17 09:28, 2F

02/17 09:28, , 3F
自己編 Python 就請多查一下 ./configure --help
02/17 09:28, 3F

02/17 19:34, , 4F
嗯嗯,謝謝,不過後來發現 psyco 不支援 64 bit。Q_Q
02/17 19:34, 4F
文章代碼(AID): #19cWzTQ0 (Python)
文章代碼(AID): #19cWzTQ0 (Python)