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

Reply via email to