Python matplotlibの導入がアレだった件

状況:
ソースビルドしたPython2.7 (--prefix=$HOME/local)

複雑ネットワークの解析とかちょっとした可視化はnetworkxとmatplotlibを使うと楽チンで良い.
virtualenvで$HOME/python2.7に環境作ってpipでnetworkxとmatplotlibを入れようとしたときのハマりログ.
(OS: fedora13 x86_64)

networkxをpipでインストール

$ pip install networkx

これは問題なし、次にmatplotlibのインストール

$ pip install matplotlib

$HOME/python2.7/build/以下にあるmatplotlibのソース内, mpiutils.cppで"vsprintf が undeclaredだよ"というエラー.

いやいや, iostreamとcstdargがちゃんとincludeされてるじゃないすか…
しかたなくiostream → stdio.h, cstdarg → stdarg.h に書き換え.

もういっちょ, ttconv/truetype.h で "FILE なんて知りません" というエラー.
#include を追加

これで表向き, matplotlibのインストールは成功するが、

import matplotlib.pylab

で, "numpy.core.maが見つかりません"というエラー.

pipで入れたnumpyは 1.6.0 なので旧バージョンと今とでは, maモジュールの配置が変わってる.(numpy.core.ma → numpy.ma)

というわけでsite-packages/以下の
matplotlib/numerix/ma/__init__.py
matplotlib/numerix/npyma/__init__.py
のソース内で
"from numpy.core.ma import *" → "from numpy.ma import *"
と修正.

これでnetworkxとmatplotlibを使った簡単なサンプルはすべて動いた.