I have not built modern versions of matplotlib for python.org's Python 2.5 because its Tcl/Tk support is badly broken such that any attempt to use a "reasonable" version of Tcl/Tk (e.g. ActiveState 8.4.19) will cause segfaults. Perhaps I am being unreasonable but:
- I use Tcl/Tk extensively so I care about it a lot
- Segfaults are frustrating for everybody and reflect badly on matplotlib (however unfairly)
The Tcl/Tk 8.4 included by Apple in all versions of its OS to date has is old and buggy. (Even the last version of 8.4 -- 8.4.19 -- has bugs, but it's a lot better than Apple's version). Hence it is important for users to be able to upgrade without getting segfaults.
So my recommendation is not to Python 2.5 on a Mac.
Regarding binary eggs for matplotlib, I suspect there are issues that will make easy_install not work well:
- The builder script setupegg.py does not seem to include dependency information. I found setupegg.py a bit confusing so I may have missed something. But if the dependencies are missing, surely this is a bug?
- Is there some way to name the eggs to disambiguate between 32-bit Python 2.7 (which works on all versions of Mac OS X) and 64-bit Python 2.7 (which only works on 10.6) that is compatible with easy_install? In the past if the eggs had strange names easy_install misbehaved.
Also setup.cfg is a bit of a pain when making distributions because:
- The default back end is Agg instead of TkAgg. Surely it should be TkAgg if Tkinter is present in the Python?
- For binary installers your desire is to include pytz and dateutil in the distribution. But for eggs your desire is to exclude them and list them as dependencies instead. I think these are reasonable rules, but they're not the default. Instead one has to edit setup.cfg one way for binary distributions and another way for eggs. That makes building releases more error-prone.
I do realize that in the long term you'd be better off with only one kind of binary: eggs or binary installers (presumably eggs). But unless easy_install has improved a lot I don't think we're there yet.
On Jan 20, 2011, at 9:07 AM, John Hunter wrote:
On Thu, Jan 20, 2011 at 10:23 AM, Jeffrey Wong <jeffwong@...149...> > wrote:
On Jan 20, 2011, at 6:14 AM, John Hunter wrote:
On Thu, Jan 20, 2011 at 2:50 AM, Jeffrey Wong <jeffwong@...149...> >>> wrote:
I tried to install matplotlib on python 2.7 and use the graph drawing functionality with NetworkX (nodes and edges).
easy_install and pip both think that the latest version is 0.91.1, which is wrong because it will import numpy.core.ma instead of numpy.ma.
I'm not sure how to fix this but PyPI lists you as the maintainer so I thought you might know.
Thanks for putting it in PyPI anyhow!
CC-ing the devel list.
It's not clear to me why this is -- I have 1.0.1 as the active version
on pypi, which is reflected on http://pypi.python.org/pypi/matplotlib
and the download URL is listed as
0.91.1 is flagged as hidden. I am not a pypi expert, but don't see
anything wrong here,
I can't use my python 2.7 to reproduce the problem since I installed matplotlib manually using the MacOS X Python 2.7 dmg/installer.
It now sees matplotlib 1.0.1-r0 as current.
However with the system python 2.5, it makes the following search:
emcs-imac:Facethingy jeffwong$ /usr/bin/easy_install -n matplotlib
Searching for matplotlib
Best match: matplotlib 0.91.1
Perhaps someone sees something obviously wrong with this...
I see -- we have seen problems with this before. It is very difficult
to get eggs names properly for OSX that are recognized. We have
My guess is that the "_r0" or "10.3" in the name is breaking the matching rule