This is for folks that don't like using macports, fink, or homebrew, but want to install cairo and possibly use it with Python.
First of all, if you're comfortable with the version of python that ships with OS X, I'd recommend these binaries - they're much more mac-user friendly. You have to install a couple of them in the right order, though, but the page explains it pretty well. (disclaimer: I didn't actually go all the way of getting py2cairo installed with these frameworks, but py2cairo's install scripts should just work with these binaries… feel free to comment if you try it and it doesn't!)
For those of us that are using a "real" version of python from python.org, things aren't as pretty… there are some guides for building on Leopard (note, not Snow Leopard, just Leopard!), but a lot has changed since then, especially if you're talking about 64-bit architectures. In case it's helpful to anyone, here's a script I hacked together over a couple of days (with help from this stackoverflow thread) to get py2cairo up and running on OS X Lion with a 64-bit python.org installation:
#!/bin/bash rm -rf ~/Downloads/temp mkdir ~/Downloads/temp cd ~/Downloads/temp curl http://pkgconfig.freedesktop.org/releases/pkg-config-0.26.tar.gz -o pkgconfig.tar.gz curl ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.10.tar.gz -o libpng.tar.gz curl http://www.cairographics.org/releases/pixman-0.24.4.tar.gz -o pixman.tar.gz curl http://www.cairographics.org/releases/cairo-1.12.0.tar.gz -o cairo.tar.gz curl http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2 -o py2cairo.tar.bz2 tar -xzvf pkgconfig.tar.gz tar -xzvf libpng.tar.gz tar -xzvf pixman.tar.gz tar -xzvf cairo.tar.gz tar -xzvf py2cairo.tar.bz2 mv pkg-config-* pkgconfig mv libpng-* libpng mv pixman-* pixman mv cairo-* cairo mv py2cairo-* py2cairo cd pkgconfig ./configure make sudo make install export PKG_CONFIG=/usr/local/bin/pkg-config export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig export PYTHONPATH=/Library/Frameworks/Python.framework/Versions/2.7/ export LD_LIBRARY_PATH=/Library/Frameworks/Python.framework/Versions/2.7/:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/Library/Frameworks/Python.framework/Versions/2.7/lib:$LD_LIBRARY_PATH export LINKFLAGS='-search_dylibs_first -L /Library/Frameworks/Python.framework/Versions/2.7/lib/' export ARCHFLAGS='-arch x86_64' export MACOSX_DEPLOYMENT_TARGET=10.7 export CC="gcc" export LDFLAGS="-arch x86_64" export CFLAGS="-arch x86_64" cd ../libpng ./configure make sudo make install cd ../pixman ./configure make sudo make install cd ../cairo ./configure make sudo make install cd ../py2cairo python waf clean python waf configure --prefix=$PYTHONPATH python waf build python waf install cd ../.. rm -rf ~/Downloads/temp
Make sure to try "import cairo" in the interpreter to test if everything worked.