matplotlibをインストールしようと思うと、結構事前に必要なものが多く、それはREADMEなりをご参照ください。numpy,libpng,zlib,freetypeなどが必要です。
必要なものをそろえて、buildしようとするも、なぜかエラーが出てしまいます。 ld: in /opt/local/lib/libJPEG.dylib, file is not of required architecture for architecture ppc collect2: ld returned 1 exit status ld: warning, duplicate dylib /opt/local/lib/libz.1.dylib lipo: can't open input file: /var/folders/tu/tu2X2sjGHXeuVHVC+zSba++++TI/-Tmp-//cc68rYIJ.out (No such file or directory) error: command 'g++' failed with exit status 1 なに言ってるんだと思いつつも、どうやら、ライブラリがuniversal binaryでないことが原因の模様。いろいろ調べるとよい情報があって、 http://ipython.scipy.org/moin/MatplotlibOSXBuildNotes このページで、libpngとfreetypeのユニバーサルバイナリを作ってmatplotlibをインストールしています。 ただ、なぜか私の環境ではうまくいかず、頭にきたので結局、一時的に/optをリネームするという強硬手段に出ました。なんか、かっこ悪いですが。。。 sudo mv opt opt_bak これで、opt以下のライブラリが読めなくなり、あっさりうまくいきました。 ちなみに、ユニバーサルなバイナリかどうかは、fileというコマンドでわかります。 /$ file /usr/local/lib/libpng.a /usr/local/lib/libpng.a: Mach-O universal binary with 4 architectures /usr/local/lib/libpng.a (for architecture i386): current ar archive random library /usr/local/lib/libpng.a (for architecture ppc): current ar archive random library /usr/local/lib/libpng.a (for architecture ppc64): current ar archive random library /usr/local/lib/libpng.a (for architecture x86_64): current ar archive random library /$ file /opt/local/lib/libpng.a /opt/local/lib/libpng.a: current ar archive random library いろいろもがいていると、いいものも見つかるときもありまして、libpngとlibjpegをぼけぼけしながらインストールできる、 http://ethan.tira-thompson.com/Mac%20OS%20X%20Ports.html こんなものがありました。 Mac相変わらず、内部的にすこし複雑ですよねー。 |
MacOSX10.5から、Python2.5.1がデフォルトでついてきて便利だーと喜んでいたのですが、Pythonの数値計算ライブラリのnumpy-1.1.0をインストールしようと思ったら、
numpy requires System Python 2.5 to install. と、途中で言われてる始末。「はぁ?入ってるでしょ?」と半ギレつつも調べたら、使っていたMac用のパッケージnumpy-1.1.0-py2.5-macosx10.5.dmgは、Apple社からの出荷時にバンドルされるPythonには対応していないことが判明。ちなみに、これはapple-pythonとか言われているらしく、 /System/Library/Frameworks/Python.framework 以下にインストールされています。 2.5.2も出ていることだし、そっちに切り替えるかと思い、python.orgからバイナリをダウンロードしてインストールすると、 /Library/Frameworks/Python.framework/ に、入ります。 今まで入れたパッケージを入れ直さないとだめかと思うと少し気が思いです。 以下、お引っ越し作業(なんかもっと楽な方法ないのかな?) /usr/lib/python2.5の張り替え /usr/lib$ sudo rm python2.5 /usr/lib$ sudo ln -s /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ python2.5 /usr/binでのリンクの張り替え /usr/bin$ sudo rm python /usr/bin$ sudo ln -s /Library/Frameworks/Python.framework/Versions/2.5/bin/python python /usr/bin$ sudo rm python-config /usr/bin$ sudo ln -s /Library/Frameworks/Python.framework/Versions/2.5/bin/python-config python-config /usr/bin$ sudo rm python2.5 /usr/bin$ sudo ln -s /Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5 python2.5 /usr/bin$ sudo rm python2.5-config /usr/bin$ sudo ln -s /Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5-config python2.5-config /usr/bin$ sudo rm pythonw /usr/bin$ sudo ln -s /Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw pythonw /usr/bin$ sudo rm pythonw2.5 /usr/bin$ sudo ln -s /Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw2.5 pythonw2.5 おおーっと、/usr/local/binにリンクができている。/usr/binのは、消せばよかっただけか? ま、いいや。 numpyのインストールにはあっさり成功。引き続き、ipythonなどをインストール。なかなか手間がかかります。 |
久しぶりに、Pythonのお話。といっても、超短編。
リストのスライスはよく知られた便利な機能です。 In [3]: a = [1,2,3,4,5] In [8]: a[1:] Out[8]: [2, 3, 4, 5] は、indexが1から最後までを切り出しますし、 a[1:2]ならば、1個目から2個目の手前までなので、ここでは2がかえります。 それはさておき、実はスライスに代入することも出来ます。 In [9]: a[1:] = [5,4,3,2] In [10]: a Out[10]: [1, 5, 4, 3, 2] こんな具合。 これを使えば、要素の削除や挿入も思いのまま。 いやー、やっぱりPython便利です。 |
| ホーム |
|