Does forcibly casting the path to a string resolve the problem? i.e.
applying this patch:
Index: mathtext.py
===================================================================
--- mathtext.py (revision 8216)
+++ mathtext.py (working copy)
@@ -597,7 +597,7 @@
cached_font = self._fonts.get(basename)
if cached_font is None:
- font = FT2Font(basename)
+ font = FT2Font(str(basename))
cached_font = self.CachedFont(font)
self._fonts[basename] = cached_font
self._fonts[font.postscript_name] = cached_font
Mike
william ratcliff wrote:
> Mike,
>
> The basename is:
> u'C:\\WINDOWS\\Fonts\\HTOWERTI.TTF'
>
> Let me try to find where my matplotlibrc file is located...
>
> Thanks,
> William
>
> On Mon, Apr 19, 2010 at 10:22 AM, Michael Droettboom <[email protected]
> <mailto:[email protected]>> wrote:
>
> One might see that error if the path to the font being used
> contains non-ascii characters (the "basename" variable in the last
> frame of the stack in the stacktrace). Is that possible? We may
> need to implement the same workaround we use for image files for
> loading fonts (which is to open the file with Python and pass a
> file handle to C++ rather than passing a string that may contain
> Unicode, which is difficult to handle in cross-platform way from
> C/C++).
>
> Mike
>
> william ratcliff wrote:
>
> I think the actual error was:
> TypeError: cannot return std::string from Unicode object
>
> It was the error returned when I walked through with a debugger...
>
> On Mon, Apr 19, 2010 at 8:51 AM, Michael Droettboom
> <[email protected] <mailto:[email protected]>
> <mailto:[email protected] <mailto:[email protected]>>> wrote:
>
> It looks like the end of the traceback -- where the actual
> exception is named -- is missing. Can you repost it in its
> entirety?
>
> Mike
>
> william ratcliff wrote:
>
> Hi! I am using matplotlib 0.99.0 under windows xp. I
> tried
> the following:
> ax.text(.96,.80,r'$P \perp
>
>
> Q$',fontsize=18,horizontalalignment='right',verticalalignment='top',transform=ax.transAxes,color='black')
> and get the following error:
> (However, in figure labels, symbols using mathtext, such as
> theta seem to work fine...)
>
> Thanks,
> William
>
> TypeError: cannot return std::string from Unicode object
> File
>
>
> "C:\mytripleaxisproject\trunk\eclipse\src\utilities\bfo_film_fig2.py",
> line 301, in <module>
> film110()
> File
>
>
> "C:\mytripleaxisproject\trunk\eclipse\src\utilities\bfo_film_fig2.py",
> line 157, in film110
> plt.show()
> File
>
> "C:\Python25\Lib\site-packages\matplotlib\backends\backend_qt4.py",
> line 63, in show
> manager.window.show()
> File
>
> "C:\Python25\Lib\site-packages\matplotlib\backends\backend_qt4.py",
> line 168, in resizeEvent
> self.draw()
> File
>
>
> "C:\Python25\Lib\site-packages\matplotlib\backends\backend_qt4agg.py",
> line 130, in draw
> FigureCanvasAgg.draw(self)
> File
>
> "C:\Python25\Lib\site-packages\matplotlib\backends\backend_agg.py",
> line 314, in draw
> self.figure.draw(self.renderer)
> File "C:\Python25\Lib\site-packages\matplotlib\artist.py",
> line 46, in draw_wrapper
> draw(artist, renderer, *kl)
> File "C:\Python25\Lib\site-packages\matplotlib\figure.py",
> line 774, in draw
> for a in self.axes: a.draw(renderer)
> File "C:\Python25\Lib\site-packages\matplotlib\artist.py",
> line 46, in draw_wrapper
> draw(artist, renderer, *kl)
> File
> "C:\Python25\Lib\site-packages\matplotlib\axes.py", line
> 1721, in draw
> a.draw(renderer)
> File
> "C:\Python25\Lib\site-packages\matplotlib\text.py", line
> 515, in draw
> bbox, info = self._get_layout(renderer)
> File
> "C:\Python25\Lib\site-packages\matplotlib\text.py", line
> 279, in _get_layout
> clean_line, self._fontproperties, ismath=ismath)
> File
>
> "C:\Python25\Lib\site-packages\matplotlib\backends\backend_agg.py",
> line 156, in get_text_width_height_descent
> self.mathtext_parser.parse(s, self.dpi, prop)
> File
> "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
> line 2810, in parse
> box = self._parser.parse(s, font_output, fontsize, dpi)
> File
> "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
> line 2259, in parse
> self._expression.parseString(s)
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 1048, in parseString
> loc, tokens = self._parse( instring, 0 )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2559, in parseImpl
> return self.expr._parse( instring, loc, doActions,
> callPreParse=False )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2307, in parseImpl
> loc, exprtokens = e._parse( instring, loc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2672, in parseImpl
> loc, tokens = self.expr._parse( instring, loc, doActions,
> callPreParse=False )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2307, in parseImpl
> loc, exprtokens = e._parse( instring, loc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2756, in parseImpl
> loc, tokens = self.expr._parse( instring, loc, doActions,
> callPreParse=False )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2714, in parseImpl
> loc, tmptokens = self.expr._parse( instring, preloc,
> doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2373, in parseImpl
> return maxMatchExp._parse( instring, loc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2559, in parseImpl
> return self.expr._parse( instring, loc, doActions,
> callPreParse=False )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2416, in parseImpl
> ret = e._parse( instring, loc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2559, in parseImpl
> return self.expr._parse( instring, loc, doActions,
> callPreParse=False )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2559, in parseImpl
> return self.expr._parse( instring, loc, doActions,
> callPreParse=False )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2416, in parseImpl
> ret = e._parse( instring, loc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2293, in parseImpl
> loc, resultlist = self.exprs[0]._parse( instring, loc,
> doActions, callPreParse=False )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2756, in parseImpl
> loc, tokens = self.expr._parse( instring, loc, doActions,
> callPreParse=False )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2559, in parseImpl
> return self.expr._parse( instring, loc, doActions,
> callPreParse=False )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2373, in parseImpl
> return maxMatchExp._parse( instring, loc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 924, in _parseNoCache
> loc,tokens = self.parseImpl( instring, preloc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 2416, in parseImpl
> ret = e._parse( instring, loc, doActions )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 981, in _parseCache
> value = self._parseNoCache( instring, loc, doActions,
> callPreParse )
> File
> "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
> line 950, in _parseNoCache
> tokens = fn( instring, tokensStart, retTokens )
> File
> "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
> line 2374, in symbol
> char = Char(c, self.get_state())
> File
> "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
> line 1264, in __init__
> self._update_metrics()
> File
> "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
> line 1271, in _update_metrics
> self.font, self.font_class, self.c, self.fontsize,
> self.dpi)
> File
> "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
> line 446, in get_metrics
> info = self._get_info(font, font_class, sym, fontsize,
> dpi)
> File
> "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
> line 579, in _get_info
> self._get_glyph(fontname, font_class, sym, fontsize)
> File
> "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
> line 697, in _get_glyph
> fontname, font_class, sym, fontsize)
> File
> "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
> line 827, in _get_glyph
> cached_font = self._get_font(new_fontname)
> File
> "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
> line 560, in _get_font
> font = FT2Font(basename)
>
>
>
> ------------------------------------------------------------------------
>
>
>
> ------------------------------------------------------------------------------
> Download Intel® Parallel Studio Eval
> Try the new software tools for yourself. Speed
> compiling, find
> bugs
> proactively, and fine-tune applications for parallel
> performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Matplotlib-users mailing list
> [email protected]
> <mailto:[email protected]>
> <mailto:[email protected]
> <mailto:[email protected]>>
>
>
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
> -- Michael Droettboom
> Science Software Branch
> Operations and Engineering Division
> Space Telescope Science Institute
> Operated by AURA for NASA
>
>
>
> --
> Michael Droettboom
> Science Software Branch
> Operations and Engineering Division
> Space Telescope Science Institute
> Operated by AURA for NASA
>
>
--
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users