It looks like something fishy in your font cache -- "None" has been entered in the table as a filename.
Can you move away your ~/.matplotlib/fontList.cache file (to force a regeneration) and see if that resolves the problem? If so, I'd like to see the original broken fontList.cache file to see if I can get to the bottom of what's wrong with it. Have you set any font-related rcParams to anything non-standard that might be causing the lookup to fail? Cheers, Mike On 06/21/2011 04:24 AM, Fernando Perez wrote: > Howdy, > > a simple > > plot(rand(100)) > savefig('foo.eps') > > is giving me the traceback below. Is it something I'm doing wrong on my side? > > Running on linux, ubuntu 10.10, python2.6. > > Thanks for any tips... > > > f > > --------------------------------------------------------------------------- > TypeError Traceback (most recent call last) > /home/fperez/research/dif-tx/src/python/<ipython-input-2-3f85c055f45e> > in<module>() > ----> 1 savefig('foo.eps') > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/pyplot.pyc > in savefig(*args, **kwargs) > 426 def savefig(*args, **kwargs): > 427 fig = gcf() > --> 428 return fig.savefig(*args, **kwargs) > 429 > 430 @docstring.copy_dedent(Figure.ginput) > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/figure.pyc > in savefig(self, *args, **kwargs) > 1160 kwargs.setdefault('edgecolor', > rcParams['savefig.edgecolor']) > 1161 > -> 1162 self.canvas.print_figure(*args, **kwargs) > 1163 > 1164 if transparent: > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/backends/backend_qt4agg.pyc > in print_figure(self, *args, **kwargs) > 151 > 152 def print_figure(self, *args, **kwargs): > --> 153 FigureCanvasAgg.print_figure(self, *args, **kwargs) > 154 self.draw() > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/backend_bases.pyc > in print_figure(self, filename, dpi, facecolor, edgecolor, > orientation, format, **kwargs) > 1977 orientation=orientation, > 1978 bbox_inches_restore=_bbox_inches_restore, > -> 1979 **kwargs) > 1980 finally: > 1981 if bbox_inches and restore_bbox: > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/backend_bases.pyc > in print_eps(self, *args, **kwargs) > 1744 from backends.backend_ps import FigureCanvasPS # lazy import > 1745 ps = self.switch_backends(FigureCanvasPS) > -> 1746 return ps.print_eps(*args, **kwargs) > 1747 > 1748 def print_pdf(self, *args, **kwargs): > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/backends/backend_ps.pyc > in print_eps(self, outfile, *args, **kwargs) > 933 > 934 def print_eps(self, outfile, *args, **kwargs): > --> 935 return self._print_ps(outfile, 'eps', *args, **kwargs) > 936 > 937 > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/backends/backend_ps.pyc > in _print_ps(self, outfile, format, *args, **kwargs) > 966 self._print_figure(outfile, format, imagedpi, > facecolor, edgecolor, > 967 orientation, isLandscape, papertype, > --> 968 **kwargs) > 969 > 970 def _print_figure(self, outfile, format, dpi=72, > facecolor='w', edgecolor='w', > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/backends/backend_ps.pyc > in _print_figure(self, outfile, format, dpi, facecolor, edgecolor, > orientation, isLandscape, papertype, **kwargs) > 1059 bbox_inches_restore=_bbox_inches_restore) > 1060 > -> 1061 self.figure.draw(renderer) > 1062 > 1063 if dryrun: # return immediately if dryrun (tightbbox=True) > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/artist.pyc > in draw_wrapper(artist, renderer, *args, **kwargs) > 53 def draw_wrapper(artist, renderer, *args, **kwargs): > 54 before(artist, renderer) > ---> 55 draw(artist, renderer, *args, **kwargs) > 56 after(artist, renderer) > 57 > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/figure.pyc > in draw(self, renderer) > 872 dsu.sort(key=itemgetter(0)) > 873 for zorder, func, args in dsu: > --> 874 func(*args) > 875 > 876 renderer.close_group('figure') > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/artist.pyc > in draw_wrapper(artist, renderer, *args, **kwargs) > 53 def draw_wrapper(artist, renderer, *args, **kwargs): > 54 before(artist, renderer) > ---> 55 draw(artist, renderer, *args, **kwargs) > 56 after(artist, renderer) > 57 > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/axes.pyc > in draw(self, renderer, inframe) > 1981 > 1982 for zorder, a in dsu: > -> 1983 a.draw(renderer) > 1984 > 1985 renderer.close_group('axes') > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/artist.pyc > in draw_wrapper(artist, renderer, *args, **kwargs) > 53 def draw_wrapper(artist, renderer, *args, **kwargs): > 54 before(artist, renderer) > ---> 55 draw(artist, renderer, *args, **kwargs) > 56 after(artist, renderer) > 57 > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/axis.pyc > in draw(self, renderer, *args, **kwargs) > 1035 > 1036 ticks_to_draw = self._update_ticks(renderer) > -> 1037 ticklabelBoxes, ticklabelBoxes2 = > self._get_tick_bboxes(ticks_to_draw, renderer) > 1038 > 1039 for tick in ticks_to_draw: > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/axis.pyc > in _get_tick_bboxes(self, ticks, renderer) > 986 for tick in ticks: > 987 if tick.label1On and tick.label1.get_visible(): > --> 988 extent = tick.label1.get_window_extent(renderer) > 989 ticklabelBoxes.append(extent) > 990 if tick.label2On and tick.label2.get_visible(): > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/text.pyc > in get_window_extent(self, renderer, dpi) > 745 raise RuntimeError('Cannot get window extent w/o > renderer') > 746 > --> 747 bbox, info = self._get_layout(self._renderer) > 748 x, y = self.get_position() > 749 x, y = self.get_transform().transform_point((x, y)) > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/text.pyc > in _get_layout(self, renderer) > 298 tmp, lp_h, lp_bl = get_text_width_height_descent('lp', > 299 > self._fontproperties, > --> 300 > ismath=False) > 301 offsety = lp_h * self._linespacing > 302 > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/backends/backend_ps.pyc > in get_text_width_height_descent(self, s, prop, ismath) > 338 if rcParams['ps.useafm']: > 339 if ismath: s = s[1:-1] > --> 340 font = self._get_font_afm(prop) > 341 l,b,w,h,d = font.get_str_bbox_and_descent(s) > 342 > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/backends/backend_ps.pyc > in _get_font_afm(self, prop) > 366 font = self.afmfontd.get(key) > 367 if font is None: > --> 368 fname = findfont(prop, fontext='afm', > directory=self._afm_font_dir) > 369 if fname is None: > 370 fname = findfont( > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/font_manager.pyc > in findfont(prop, **kw) > 1319 def findfont(prop, **kw): > 1320 global fontManager > -> 1321 font = fontManager.findfont(prop, **kw) > 1322 return font > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/font_manager.pyc > in findfont(self, prop, fontext, directory, fallback_to_default, > rebuild_if_missing) > 1211 default_prop = prop.copy() > 1212 default_prop.set_family(self.defaultFamily[fontext]) > -> 1213 return self.findfont(default_prop, fontext, > directory, False) > 1214 else: > 1215 # This is a hard fail -- we can't find > anything reasonable, > > > /home/fperez/usr/opt/lib/python2.6/site-packages/matplotlib/font_manager.pyc > in findfont(self, prop, fontext, directory, fallback_to_default, > rebuild_if_missing) > 1226 result = best_font.fname > 1227 > -> 1228 if not os.path.isfile(result): > 1229 if rebuild_if_missing: > 1230 verbose.report( > > /usr/lib/python2.6/genericpath.pyc in isfile(path) > 27 """Test whether a path is a regular file""" > 28 try: > ---> 29 st = os.stat(path) > 30 except os.error: > 31 return False > > TypeError: coercing to Unicode: need string or buffer, NoneType found > > ------------------------------------------------------------------------------ > EditLive Enterprise is the world's most technically advanced content > authoring tool. Experience the power of Track Changes, Inline Image > Editing and ensure content is compliant with Accessibility Checking. > http://p.sf.net/sfu/ephox-dev2dev > _______________________________________________ > Matplotlib-devel mailing list > Matplotlib-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel -- Michael Droettboom Science Software Branch Space Telescope Science Institute Baltimore, Maryland, USA ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel