[Pythonmac-SIG] Compiling matplotlib on OS-X without Fink

Chris Barker Chris.Barker at noaa.gov
Wed Feb 2 00:50:52 CET 2005


Hi all,

I just got matplotlib working on my box, so I thought I'd post this, so 
that it will be in the archives, and because I'd like others to try it 
and let me know if it doesn't work for you.


One question for the knowledgeable folks here:

I have /usr/include/zlib.h on my system, but I have no idea where I got 
it. I do know that it isn't on other systems in my office without the 
dev tools. Did it come with the dev tools, or something else I installed?

Anyway, here's what worked for me:

Installing matplotlib on OS-X (10.3.7)

Here are my notes as to what it took to get matplotlib (0.71) installed 
and working on OS-X. I have so far kept a fink-free system, so that's 
what I've done here as well. I use it with the AGG back end for 
generating images for a web site, and hopefully with the wx backend for 
interactive use and embedding in wx Applications.

1) Requirements:
-------------------------------------------
According to the matplotlib install docs 
(http://matplotlib.sourceforge.net/installing.html), you need the following:

freetype (>= 2.1.7)
libpng
zlib

Personally, I've been avoiding Fink, as it doesn't seem to play well 
with the rest of OS-X, including the Apple supplied Python, so I've 
looked elsewhere for these libs.

a) Freetype:
I seem to have it in:

/usr/X11R6/include/freetype2

I don't think I installed it myself, so it probably came with Apple's 
X11, Which I did install.

However, I seemed to be having problems with that version, so I looked, 
and it seems to be:

libfreetype.6.3.dylib

Given that freetype2 is currently at version 2.1.9, I have no idea what 
to make of that! So off to sourceforge to get a new freetype:

http://freetype.sourceforge.net/index2.html

where I got:

freetype-2.1.9.tar.gz

Following the instructions in docs/INSTALL.UNX:

$ ./configure
$ make
$ sudo make install

That puts it in /usr/local/..., which is a good place for it.

b) zlib:
I have:
/usr/include/zlib.h

I don't know where I might have gotten it, but there it is.

NOTE: I checked on another system in my office, and it doesn't have 
zlib. It also doesn't have any developer tools installed, so you 
couldn't build anything on it anyway. If zlib comes with XCode tools, 
anyone who can build should have it. It also may have come with some 
other package I've installed, but I have no idea what. Let me know if 
you know.

c) libpng:
This, I didn't have on my system, except inside the wxWidgets source 
tree, so I went looking for it.

Note that you need zlib to compile libpng, so make sure you have that first.

I did a google search for "libpng OS-X". I found:

http://www.libpng.org/pub/png/pngcode.html

Which led me to the libpng sourceforge site.

 From there I downloaded:

libpng-1.2.8.tar.gz

unpacked it, and opened a terminal in the libpng-1.2.8 directory, and did:

$ cp scripts/makefile.darwin ./makefile

(note that according to the INSTALL, there is supposed to be a 
makefile.macosx, but it wasn't there)

I took a look in the makefile, and found:

ZLIBLIB=/usr/local/lib
ZLIBINC=/usr/local/include

Which is not where zlib is on my system. However, while I can find 
zlib.h, I couldn't fine the actual lib, so I tried make without changing 
anything.

$ make

Which seemed to work fine. zlib must be installed in a standard 
location, and gcc  found it.

$ sudo make install

to install the lib into /usr/local/ (this was specified in the makefile, 
and it's a good place for it)

$ make test
and
$ ./pngtest pngnow.png

Which both seemed to pass.

d) Numeric or numarray:

I already have Numeric installed, from Bob Ippolito's PIMP (MacPython 
Package Manager) repostitory. (www.undefined.org/python)

2) Building matplotlib
---------------------------------------------------------
First, I took a look at the matplotlib setup.py. It had "auto" for the 
back-end flags, so I thought I would give it a try that way:

$python setup.py build

That worked!
$ sudo python setup.py install

4) And now to test!

$python

 >>> import pylab
Could not open font file /Library/Fonts/NISC18030.ttf
No module named pygtk
PyGTK version 1.99.16 or greater is required to run the GTK Matplotlib 
backends

This turns out to be because the matlabrc file sets the GTKAgg back end 
as the default. You have two choices.

1) you can set the back end before importing pylab.
 >>> import matplotlib
 >>> matplotlib.use('Agg')
 >>> import pylab

This works fine

2) Edit the matplotlibrc file. I found it in:
/System/Library/Frameworks/Python.framework/Versions/2.3/share/matplotlib/.matplotlibrc

Change the line:
backend      : GTKAgg    # the default backend
to
backend      : Agg    # the default backend

And you're all set to make images for the web, etc.

I'm  going to leave getting it to work with wxPython for another day.

-Chris


-- 
Christopher Barker, Ph.D.
Oceanographer
                                     		
NOAA/OR&R/HAZMAT         (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker at noaa.gov


More information about the Pythonmac-SIG mailing list