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 <md...@stsci.edu 
> <mailto:md...@stsci.edu>> 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
>         <md...@stsci.edu <mailto:md...@stsci.edu>
>         <mailto:md...@stsci.edu <mailto:md...@stsci.edu>>> 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&#174; 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
>                Matplotlib-users@lists.sourceforge.net
>         <mailto:Matplotlib-users@lists.sourceforge.net>
>                <mailto:Matplotlib-users@lists.sourceforge.net
>         <mailto:Matplotlib-users@lists.sourceforge.net>>
>
>              
>          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&#174; 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
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to