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>> 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> > 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 ------------------------------------------------------------------------------ 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