Okay, I figured it out.  The people who maintain the Gentoo ebuild for 
matplotlib decided to remove the "unnecessary" copies of fonts, pycxx and 
pyparser that are bundled with matplotlib.  The latest version of the ebuild 
contains code that explicitly removes the bundled fonts, pyparser and pycxx 
modules.  I would never have thought to look there if you hadn't pointed this 
out.  I posted a bug on Gentoo (260025) requesting that they use the bundled 
pyparsing module, and check with the matplotlib developers about the other 
"redundant" packages before deleting them.

Thanks for your help.

   Craig



----- Original Message ----
From: Michael Droettboom <md...@stsci.edu>
To: Craig Finch <cfi...@ieee.org>
Cc: matplotlib-users@lists.sourceforge.net
Sent: Monday, February 23, 2009 9:49:06 AM
Subject: Re: [Matplotlib-users] Crash when trying to show a semilog or log-log 
plot

Strange.  I am unable to reproduce this with 0.98.2 (0.98.3 or 0.98.5)...

It's happening inside of the math expression renderer, which is used to draw 
the exponents that happen with semilog and log-log axes.  It doesn't, however, 
appear to be font-related, which is a frequent installation/system problem.

What is strange about this traceback is that it is using the system-wide 
installed version of pyparsing.py, and not the one that comes with matplotlib.  
matplotlib is very sensitive to small version changes in pyparsing, so we 
distribute our own copy and try to use it.  If you temporarily move 
/usr/lib/python2.4/site-packages/pyparsing.py to another location, does that 
solve the problem?  If so, I will look into how we're importing pyparsing.py to 
ensure we always use the local copy.

Mike

Craig Finch wrote:
> I am using matplotlib-0.98.5.2 and getting a strange crash when trying to 
> show() a window with semilog or log-log axes.  Here is a simple script that 
> will cause the crash:
> 
> import pylab
> from numpy import *
> x = arange(1., 10., 0.1)
> y = x**2
> pylab.semilogx(x,y)
> pylab.show()
> 
> At the end of this message is a sample of the output.  I had to cut it down 
> because it's apparently stuck in a loop in pyparsing.py and keeps outputting 
> the same repetitive message.  Did I find a bug here?  Any suggestions would 
> be appreciated.
> 
>    Craig
> 
> Sample output:
> ------------------------------------------------------
>   File 
> "//usr/lib/python2.4/site-packages/matplotlib/backends/backend_gtk.py", line 
> 352, in expose_event
>     self._render_figure(self._pixmap, w, h)
>   File 
> "//usr/lib/python2.4/site-packages/matplotlib/backends/backend_gtkagg.py", 
> line 75, in _render_figure
>     FigureCanvasAgg.draw(self)
>   File 
> "//usr/lib/python2.4/site-packages/matplotlib/backends/backend_agg.py", line 
> 279, in draw
>     self.figure.draw(self.renderer)
>   File "//usr/lib/python2.4/site-packages/matplotlib/figure.py", line 772, in 
> draw
>     for a in self.axes: a.draw(renderer)
>   File "//usr/lib/python2.4/site-packages/matplotlib/axes.py", line 1601, in 
> draw
>     a.draw(renderer)
>   File "//usr/lib/python2.4/site-packages/matplotlib/axis.py", line 710, in 
> draw
>     tick.draw(renderer)
>   File "//usr/lib/python2.4/site-packages/matplotlib/axis.py", line 193, in 
> draw
>     self.label1.draw(renderer)
>   File "//usr/lib/python2.4/site-packages/matplotlib/text.py", line 452, in 
> draw
>     bbox, info = self._get_layout(renderer)
>   File "//usr/lib/python2.4/site-packages/matplotlib/text.py", line 252, in 
> _get_layout
>     w, h, d = renderer.get_text_width_height_descent(
>   File 
> "//usr/lib/python2.4/site-packages/matplotlib/backends/backend_agg.py", line 
> 152, in get_text_width_height_descent
>     ox, oy, width, height, descent, fonts, used_characters = \
>   File "//usr/lib/python2.4/site-packages/matplotlib/mathtext.py", line 2808, 
> in parse
>     box = self._parser.parse(s, font_output, fontsize, dpi)
>   File "//usr/lib/python2.4/site-packages/matplotlib/mathtext.py", line 2259, 
> in parse
>     self._expression.parseString(s)
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 1065, in 
> parseString
>     loc, tokens = self._parse( instring, 0 )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 998, in 
> _parseCache
>     value = self._parseNoCache( instring, loc, doActions, callPreParse )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 941, in 
> _parseNoCache
>     loc,tokens = self.parseImpl( instring, preloc, doActions )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 2577, in 
> parseImpl
>     return self.expr._parse( instring, loc, doActions, callPreParse=False )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 998, in 
> _parseCache
>     value = self._parseNoCache( instring, loc, doActions, callPreParse )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 941, in 
> _parseNoCache
>     loc,tokens = self.parseImpl( instring, preloc, doActions )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 2325, in 
> parseImpl
>     loc, exprtokens = e._parse( instring, loc, doActions )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 998, in 
> _parseCache
>     value = self._parseNoCache( instring, loc, doActions, callPreParse )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 941, in 
> _parseNoCache
>     loc,tokens = self.parseImpl( instring, preloc, doActions )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 2690, in 
> parseImpl
>     loc, tokens = self.expr._parse( instring, loc, doActions, 
> callPreParse=False )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 998, in 
> _parseCache
>     value = self._parseNoCache( instring, loc, doActions, callPreParse )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 941, in 
> _parseNoCache
>     loc,tokens = self.parseImpl( instring, preloc, doActions )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 2325, in 
> parseImpl
>     loc, exprtokens = e._parse( instring, loc, doActions )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 998, in 
> _parseCache
>     value = self._parseNoCache( instring, loc, doActions, callPreParse )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 941, in 
> _parseNoCache
> 
> ------------- snip -------------
> 
> File "/usr/lib/python2.4/site-packages/pyparsing.py", line 2309, in parseImpl
>     loc, resultlist = self.exprs[0]._parse( instring, loc, doActions, 
> callPreParse=False )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 998, in 
> _parseCache
>     value = self._parseNoCache( instring, loc, doActions, callPreParse )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 941, in 
> _parseNoCache
>     loc,tokens = self.parseImpl( instring, preloc, doActions )
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 2321, in 
> parseImpl
>     raise ParseSyntaxException(pe)
>   File "/usr/lib/python2.4/site-packages/pyparsing.py", line 230, in __init__
>     super(ParseSyntaxException, self).__init__(
> TypeError: super() argument 1 must be type, not classobj
> 
> 
>      
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
> -Strategies to boost innovation and cut costs with open source participation
> -Receive a $600 discount off the registration fee with the source code: SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> Matplotlib-users mailing list
> 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


      

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to