/var/log

技術系のあれこれ。※内容は個人の発言であり、所属する組織を代表するものではありません。

matplotlibが正しくインストールできない...

  • 環境
    • 本体:MBP 15-inch, Mid 2009
    • OS:Mac OS X Lion(10.7.2)


二日ほど前からmatplotlibをインストールしようとしています.
しかしうまくいきません...

sudo pip install numpy
sudo pip install matplotlib

で簡単にインストール完了を夢見ていましたが,import するときにエラーがでます.

>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/matplotlib/pyplot.py", line 23, in <module>
    from matplotlib.figure import Figure, figaspect
  File "/Library/Python/2.7/site-packages/matplotlib/figure.py", line 18, in <module>
    from axes import Axes, SubplotBase, subplot_class_factory
  File "/Library/Python/2.7/site-packages/matplotlib/axes.py", line 14, in <module>
    import matplotlib.axis as maxis
  File "/Library/Python/2.7/site-packages/matplotlib/axis.py", line 10, in <module>
    import matplotlib.font_manager as font_manager
  File "/Library/Python/2.7/site-packages/matplotlib/font_manager.py", line 52, in <module>
    from matplotlib import ft2font
ImportError: dlopen(/Library/Python/2.7/site-packages/matplotlib/ft2font.so, 2): Symbol not found: _FT_Attach_File
  Referenced from: /Library/Python/2.7/site-packages/matplotlib/ft2font.so
  Expected in: flat namespace
 in /Library/Python/2.7/site-packages/matplotlib/ft2font.so


ネットを徘徊していると ft2fontはgcc4.2でコンパイルしているのに
pythonはgcc4.0でコンパイルされているのが原因...?っていう情報を見つけました.

対策は別途考えないと...






因にMacにデフォルトでインストールされているpythonではうごかいけど
mac portsでインストールしたpython(以下:python2.7)では動きました.
(画像の保存はできるのに,表示は出来ないが...)


mac portsでインストールしたのはgcc4.2でコンパイルしてるみたいなんだよな〜
デフォルトのpython(以下:python2.7-native)で動くようにしないと,これまでeasy_installでいれていた
各種ライブラリのパスやら何やらがめちゃめちゃになりそう...


もう少し頑張ります.
最後にpython2.7とpython2.7-nativeを起動したときのメッセージを記載しておきます.

  • python2.7起動時
Python 2.7.2 (default, Nov  6 2011, 14:04:11) 
[GCC 4.2.1 Compatible Apple Clang 3.0 (tags/Apple/clang-211.10.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
  • python2.7-native起動時
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 14:13:39) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.


[追記]
ScipySuperPackってのが使えそうだけど失敗するんだよね...

http://yi01.blogspot.com/2011/06/macbook-airpythonnumpy-scipy-matplotlib.html



[追記(結論)]
うーん...よくわからないけど
分けも分からずSciPyをバイナリインストーラで入れたら動きました.
(何が直接的な原因か未だにわからない...)


以下のURLのDownloadからScipyを選ぶといいです.
http://www.scipy.org/SciPy



にしても少し気がかりなのはBinaryからいれるとフレームワークの所にはりるけど
(/Library/Frameworks/の配下のあたり)

  • (例)
>>> matplotlib.__file__
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/__init__.pyc'

にはいるけど,pipやeasy_installを使うとsite-packagesにはいるんだよね.
(/Library/Python/2.7/site-packages/の配下)

  • (例)
>>> pygame.__file__
'/Library/Python/2.7/site-packages/pygame-1.9.1release-py2.7-macosx-10.7-intel.egg/pygame/__init__.pyc'

この違いはなんだろう?というのとどうやってパスを通しているか気になる.
(僕は$PYTHONPATHは何も設定していないので...)