OS X Mavericksにpython3.3/numpy/scipy/matplotlib/scikit-learnをインストールする
この記事は古くなっています。
最新版の記事はこちらになります。
MacでPythonの機械学習環境構築(2015年2月版) - old school magic
内容はタイトル通りです。
OS X Mavericksにアップデートしてpython関係のインストールがうまく行かなくなった方に参考になれば嬉しいです。(python3に関してはあんまりMavericks関係ないかも。)
pythonは2系と3系を両方使いたいので、Homebrewを使ってインストールします。
- 公式
Homebrew — The missing package manager for OS X
- インストール、使い方
MacOSX - パッケージ管理システム Homebrew - Qiita
- アンインストール
Homebrewのアンインストールと再インストール: 黄昏てなんかいられない
Home · Homebrew/homebrew Wiki · GitHub
# python3のインストール brew install python3
brewを使ってインストールすると、pipやsetuptoolsも入ってきて大変楽です。
brewでインストールした場合python3系のコマンドは後ろに3が付きます。
(2系はそのまま)
scipyはgfortranに依存してるので先にインストールします
# gfortranのインストール brew install gfortran
numpy/scipyはbrewにあるパッケージは2系なので
(訂正 : brew searchしてみたら2系のnumpy/scipyはHomebrewになかったです...あれー...?)
pipでnumpy/scipyをインストールします。
# numpyのインストール pip3 install numpy # scipyのインストール pip3 install scipy
で次にmatplotlibをインストールするのですが、前はここでこけました。
macでPython3のmatplotlibを導入出来ませんでした - old school magic
とりあえずmatplotlibにはfreetypeとlibpngというパッケージが必要なのでインストール。
# freetypeのインストール brew install freetype # libpngのインストール(おそらく上のコマンドですでにインストールされてる) brew install libpng
ですがこのままmatplotlibをインストールしようとするとエラーが出ます。
(コンパイルしたけどfreetypeが見つからなかったよ!ってエラーです)
ピンポイントでStack Overflowに同じ質問ありました。
python - Unable to install matplotlib on Mac OS X - Stack Overflow
要するにfreetypeやlibpngがXCodeのコマンドラインツールによって変なところにインストールされちゃってるのが原因みたいです。(何故か/usr/X11/以下にインストールされてます。)
というわけで(/usr/local/に)リンクします。
# 魔法の言葉 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
そしてmatplotlibとscikit-learnをインストールして完了!
# インストール成功! pip3 install matplotlib # scikit-learnのインストール pip3 install scikit-learn
補足
gfortran入れるの忘れると、
Library not loaded: /usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libgfortran.3.dylib Referenced from: /usr/local/lib/python3.3/site-packages/scipy/special/_ufuncs.so Reason: image not found
って感じのエラーが出ます。
あとbrewでpython3を入れると
Setuptools and Pip have been installed. To update them pip3 install --upgrade setuptools pip3 install --upgrade pip To symlink "Idle 3" and the "Python Launcher 3" to ~/Applications `brew linkapps` You can install Python packages with `pip3 install <your_favorite_package>` They will install into the site-package directory /usr/local/lib/python3.3/site-packages See: https://github.com/mxcl/homebrew/wiki/Homebrew-and-Python
って感じでSetuptoolsとPipも入れたよ!ってメッセージが出ます。
感想
コンパイルエラーに対処できるようになりたいです...