作者hardliner (liner)
看板Python
标题Re: [问题] 请问 matplotlib 要如何 show()
时间Tue Feb 17 09:14:03 2009
1F:→ yungyuc: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
2F:→ yungyuc:通常 TkAgg 是最简单的 02/17 09:27
3F:→ yungyuc:debian/ubuntu 包的 matplotlib 都没有问题 02/17 09:28
4F:→ yungyuc:自己编 Python 就请多查一下 ./configure --help 02/17 09:28
5F:→ hardliner:嗯嗯,谢谢,不过後来发现 psyco 不支援 64 bit。Q_Q 02/17 19:34