Re: [Matplotlib-users] Strange error after installing matplotlib from macports
Hi Jouni, Wow, that worked a treat. Thank you very much! Maybe you should post that to the -devel mailing list, too! On the computer that this bug didn't occur, the ~/Library/Fonts directory is completely empty! I wonder where it is looking for lcmssi8.afm if it isn't in ~/Library/Fonts Yeah I didn't want to play around with the installed files Macports creates, so I installed matplotlib from svn and, also since I don't know how to apply a patch, I just edited the afm.py to make your changes. This worked fine, and I no longer get the error! Also, as I now have produced a graph (just a sin wave) as a test, the ~/.matplotlib directory contains some files (fontList.cache and tex.cache). It seems as though these files are created to aid in the speed of producing plots in the future by saving previously produced text output. Thank you very much, Jouni! Regards, --Damon On 15 Sep 2009, at 12:49, Jouni K. Seppänen wrote: > Damon McDougall writes: > >> (Pdb) p fh >> > That's a font that probably came with a TeX distribution and somehow > got > installed in your font library. > >> (Pdb) p line >> 'C 0 ; WX 708.333 ; N Gamma ; B 0 0 836.364 684.027 ;' > > Failing on this line is a bug in matplotlib, since the AFM spec says > that bounding-box coordinates are "numbers", not "integers". > Apparently > not many AFM files use that precise bounding boxes, since we haven't > run > into this before. > > I don't know how the MacPorts packaging system would react to > modifying > installed files, but I imagine that applying the attached patch should > fix this. > >> Also, after some curiosity, I realised the file ~/.matplotlib/ >> fontList.cache doesn't exist. In fact, the ~/.matplotlib directory is >> empty, there aren't even any hidden files. On my other computer, >> matplotlib works fine and the ~/.matplotlib directory contains three >> files: fontList.cache, fontManager.cache and tex.cache. > > Maybe the files just didn't get written into your directory, since > matplotlib bailed out at the first failure. > > Index: lib/matplotlib/afm.py > === > --- lib/matplotlib/afm.py (revision 7750) > +++ lib/matplotlib/afm.py (working copy) > @@ -165,7 +165,8 @@ > num = _to_int(vals[0].split()[1]) > wx = _to_float(vals[1].split()[1]) > name = vals[2].split()[1] > -bbox = _to_list_of_ints(vals[3][2:]) > +bbox = _to_list_of_floats(vals[3][2:]) > +bbox = map(int, bbox) > # Workaround: If the character name is 'Euro', give it the > corresponding > # character code, according to WinAnsiEncoding (see PDF > Reference). > if name == 'Euro': > > -- > Jouni K. Seppänen > http://www.iki.fi/jks > -- > Come build with us! The BlackBerry® Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart > your > developing skills, take BlackBerry mobile applications to market and > stay > ahead of the curve. Join us from November 9-12, 2009. Register > now! > http://p.sf.net/sfu/devconf___ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users -- Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] Strange error after installing matplotlib from macports
Damon McDougall writes: > (Pdb) p fh > (Pdb) p line > 'C 0 ; WX 708.333 ; N Gamma ; B 0 0 836.364 684.027 ;' Failing on this line is a bug in matplotlib, since the AFM spec says that bounding-box coordinates are "numbers", not "integers". Apparently not many AFM files use that precise bounding boxes, since we haven't run into this before. I don't know how the MacPorts packaging system would react to modifying installed files, but I imagine that applying the attached patch should fix this. > Also, after some curiosity, I realised the file ~/.matplotlib/ > fontList.cache doesn't exist. In fact, the ~/.matplotlib directory is > empty, there aren't even any hidden files. On my other computer, > matplotlib works fine and the ~/.matplotlib directory contains three > files: fontList.cache, fontManager.cache and tex.cache. Maybe the files just didn't get written into your directory, since matplotlib bailed out at the first failure. Index: lib/matplotlib/afm.py === --- lib/matplotlib/afm.py (revision 7750) +++ lib/matplotlib/afm.py (working copy) @@ -165,7 +165,8 @@ num = _to_int(vals[0].split()[1]) wx = _to_float(vals[1].split()[1]) name = vals[2].split()[1] -bbox = _to_list_of_ints(vals[3][2:]) +bbox = _to_list_of_floats(vals[3][2:]) +bbox = map(int, bbox) # Workaround: If the character name is 'Euro', give it the corresponding # character code, according to WinAnsiEncoding (see PDF Reference). if name == 'Euro': -- Jouni K. Seppänen http://www.iki.fi/jks -- Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] Strange error after installing matplotlib from macports
Hi Jouni, Sure. Here is the output from your suggestion: Python 2.5.4 (r254:67916, Sep 15 2009, 11:16:42) [GCC 4.2.1 (Apple Inc. build 5646)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from pdb import pm >>> from matplotlib.figure import Figure Traceback (most recent call last): File "", line 1, in File "/opt/local/lib/python2.5/site-packages/matplotlib/figure.py", line 19, in from axes import Axes, SubplotBase, subplot_class_factory File "/opt/local/lib/python2.5/site-packages/matplotlib/axes.py", line 12, in import matplotlib.axis as maxis File "/opt/local/lib/python2.5/site-packages/matplotlib/axis.py", line 10, in import matplotlib.font_manager as font_manager File "/opt/local/lib/python2.5/site-packages/matplotlib/ font_manager.py", line 1301, in _rebuild() File "/opt/local/lib/python2.5/site-packages/matplotlib/ font_manager.py", line 1292, in _rebuild fontManager = FontManager() File "/opt/local/lib/python2.5/site-packages/matplotlib/ font_manager.py", line 1010, in __init__ self.afmlist = createFontList(self.afmfiles, fontext='afm') File "/opt/local/lib/python2.5/site-packages/matplotlib/ font_manager.py", line 578, in createFontList font = afm.AFM(fh) File "/opt/local/lib/python2.5/site-packages/matplotlib/afm.py", line 294, in __init__ parse_afm(fh) File "/opt/local/lib/python2.5/site-packages/matplotlib/afm.py", line 282, in parse_afm dcmetrics_ascii, dcmetrics_name = _parse_char_metrics(fh) File "/opt/local/lib/python2.5/site-packages/matplotlib/afm.py", line 168, in _parse_char_metrics bbox = _to_list_of_ints(vals[3][2:]) File "/opt/local/lib/python2.5/site-packages/matplotlib/afm.py", line 47, in _to_list_of_ints return [_to_int(val) for val in s.split()] ValueError: invalid literal for int() with base 10: '836.364' >>> pm() > /opt/local/lib/python2.5/site-packages/matplotlib/afm.py(47) _to_list_of_ints() -> return [_to_int(val) for val in s.split()] (Pdb) up > /opt/local/lib/python2.5/site-packages/matplotlib/afm.py(168) _parse_char_metrics() -> bbox = _to_list_of_ints(vals[3][2:]) (Pdb) p fh (Pdb) p line 'C 0 ; WX 708.333 ; N Gamma ; B 0 0 836.364 684.027 ;' (Pdb) p vals ['C 0 ', ' WX 708.333 ', ' N Gamma ', ' B 0 0 836.364 684.027 '] Also, after some curiosity, I realised the file ~/.matplotlib/ fontList.cache doesn't exist. In fact, the ~/.matplotlib directory is empty, there aren't even any hidden files. On my other computer, matplotlib works fine and the ~/.matplotlib directory contains three files: fontList.cache, fontManager.cache and tex.cache. Hope this explains more. Thanks in advance for any help. Regards, --Damon On 15 Sep 2009, at 11:42, Jouni K. Seppänen wrote: > Damon McDougall writes: > > from matplotlib.figure import Figure >> ValueError: invalid literal for int() with base 10: '836.364' >> >> I have no clue what is going on. Does anybody have any ideas? > > Could you do the following: (if you already exited that Python shell > and can't reproduce the problem any longer, you can delete your > ~/.matplotlib/fontList.cache and try again) > > from pdb import pm > pm() > > This should get you to a debugger. Then type: > > up > p fh > p line > p vals > > to get some more information on what is going wrong. > > -- > Jouni K. Seppänen > http://www.iki.fi/jks > > > -- > Come build with us! The BlackBerry® Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart > your > developing skills, take BlackBerry mobile applications to market and > stay > ahead of the curve. Join us from November 9-12, 2009. Register > now! > http://p.sf.net/sfu/devconf > ___ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users -- Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] Strange error after installing matplotlib from macports
Damon McDougall writes: > >>> from matplotlib.figure import Figure > ValueError: invalid literal for int() with base 10: '836.364' > > I have no clue what is going on. Does anybody have any ideas? Could you do the following: (if you already exited that Python shell and can't reproduce the problem any longer, you can delete your ~/.matplotlib/fontList.cache and try again) from pdb import pm pm() This should get you to a debugger. Then type: up p fh p line p vals to get some more information on what is going wrong. -- Jouni K. Seppänen http://www.iki.fi/jks -- Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users