On the plus side, there is no longer an error when I apply the patch. On
the downside, it generates a rather strange symbol instead of a
perpendicular symbol....Let me try to quickly upgrade to 0.99.1. I did that
and I seem to get the same error...
On Mon, Apr 19, 2010 at 10:49 AM, Michael Droettboom <md...@stsci.edu>wrote:
> 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® 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® 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