This is a general overview (from memory) of the steps I used to install graphite (http://graphite.wikidot.com) on OS X Lion. I think the steps are in order but YMMV. Please fork and fix if you find an error.
curl -kL http://xrl.us/pythonbrewinstall | bash
echo '[[ -s $HOME/.pythonbrew/etc/bashrc ]] && source $HOME/.pythonbrew/etc/bashrc' >> ~/.bashrc
[[ -s $HOME/.pythonbrew/etc/bashrc ]] && source $HOME/.pythonbrew/etc/bashrc
pythonbrew install 2.7.2
pythonbrew use 2.7.2
pythonbrew venv create graphite
pythonbrew venv use graphite
$ python --version
Python 2.7.2
$ type python
python is /Users/oyiptong/.pythonbrew/pythons/Python-2.7.2/bin/python
$ file `which python`
/Users/oyiptong/.pythonbrew/pythons/Python-2.7.2/bin/python: Mach-O 64-bit executable x86_64
brew install cairo
git clone git://git.cairographics.org/git/py2cairo
# Open wscript and below `env = ctx.env` add `env.append_unique('CFLAGS', ['-arch', 'x86_64'])`
export PYTHONPATH=/Users/oyiptong/.pythonbrew/pythons/Python-2.7.2
export PATH=/Users/oyiptong/.pythonbrew/pythons/Python-2.7.2/bin:$PATH
export LD_LIBRARY_PATH=/Users/oyiptong/.pythonbrew/pythons/Python-2.7.2/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/Users/oyiptong/.pythonbrew/pythons/Python-2.7.2/lib:$LD_LIBRARY_PATH
export LINKFLAGS='-search_dylibs_first -L /Users/oyiptong/.pythonbrew/pythons/Python-2.7.2/lib'
export ARCHFLAGS='-arch x86_64'
export CC=/usr/bin/gcc
export PKG_CONFIG_PATH=/usr/local/Cellar/cairo/1.10.2/lib/pkgconfig
python waf clean
python waf configure --libdir=/Users/oyiptong/.pythonbrew/venvs/Python-2.7.2/graphite/lib
python waf build
python waf install
pip install carbon
pip install whisper
pip install django==1.3.1
pip install django-tagging
pip install graphite-web
cd /opt/graphite/webapp/graphite
python manage.py syncdb
cd /opt/graphite/conf
cp storage-schemas.conf.example storage-schemas.conf
cp carbon.conf.example carbon.conf
./bin/carbon-cache.py start
./bin/run-graphite-devel-server.py /opt/graphite
http://localhost:8080
If it works correclty you should see a black image with "No Data" in the Graphite Composer. If you see a broken image, it's probably something to do with py2cairo and cairo.
The crazy train section seems to work now as: