<p>问题的根源在于,freetype和libpng是由XCode安装在非规范位置的/usr/X11,而不是/usr或/usr/local。</p>
<p>所有已经给出的答案都通过重新构建freetype和libpng来解决这个问题,无论是手动还是使用像homebrew这样的包管理器。</p>
<p>但是,只需将现有的freetype/libpng头文件和库符号链接到/usr/local树中,就可以编译matplotlib:</p>
<pre><code>sudo mkdir -p /usr/local/include
sudo ln -s /usr/X11/include/freetype2/freetype /usr/local/include/freetype
sudo ln -s /usr/X11/include/ft2build.h /usr/local/include/ft2build.h
sudo ln -s /usr/X11/include/png.h /usr/local/include/png.h
sudo ln -s /usr/X11/include/pngconf.h /usr/local/include/pngconf.h
sudo ln -s /usr/X11/include/pnglibconf.h /usr/local/include/pnglibconf.h
sudo mkdir -p /usr/local/lib
sudo ln -s /usr/X11/lib/libfreetype.dylib /usr/local/lib/libfreetype.dylib
sudo ln -s /usr/X11/lib/libpng.dylib /usr/local/lib/libpng.dylib
</code></pre>
<p>我更喜欢用pip构建python包,因此我将使用:</p>
<pre><code>sudo pip install matplotlib
</code></pre>
<p>如果您还没有pip,可以使用easy_install(随OS X提供)安装它:</p>
<pre><code>sudo easy_install pip
</code></pre>
<p>我只在10.7版(Lion)上测试过这个,但我怀疑它也能在10.6版上运行。</p>
<p>这是一个小技巧,但我发现这是针对OSX附带的stock python框架安装matplotlib的最简单方法。10.7中的stock python框架实际上相当不错,包括一个链接到苹果优化的BLAS库(Accelerate)的numpy-1.5.1包:</p>
<pre><code>dyldinfo -dylibs /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/linalg/lapack_lite.so
for arch x86_64:
attributes dependent dylibs
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
/usr/lib/libSystem.B.dylib
</code></pre>