MacにPython,Rのデータ分析環境を構築したのでメモ

はじめに

研究のためにデータ解析を勉強していかないといけないので、Macにデータ解析のための環境を構築。 前回、Homebrew、Python、virtualenvのインストール・設定しているので、その続きから。


(2014/11/13 追記) pyenv-virtualenvを導入しました

pyenvを使うことでいちいちworkonしなくてもディレクトリに移動したら自動で環境が切り替わるらしい。pyenv-virtualenvを使うと仮想環境も指定できるようになる。

参考記事

pyenv-virtualenvインストール

$ brew install pyenv-virtualenv

.bash_profileに↓を追記

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

基本的な使い方

$ pyenv install --list         # インストール可能なバージョンの一覧を表示
$ pyenv install <バージョン>         # インストール
$ pyenv virtualenv <バージョン> <環境名>         # virtualenv環境の作成
$ pyenv versions         # インストール済みのバージョンとPython環境一覧を確認
$ pyenv version          # 現在のバージョンを確認
$ pyenv virtualenvs     # インストール済みの仮想環境一覧
$ pyenv uninstall <バージョンまたは環境名>         # アンインストール

ディレクトリに移動したら自動で環境を切り分けるには↓のとおり。

$ pyenv local <バージョン> # ディレクトリ固有のPython環境を設定
$ pyenv local --unset # ディレクトリ固有のPython環境をクリア

anacondaを入れるとデータ分析に必要なライブラリ等が一気に入ります。

$ pyenv install anaconda-2.1.0
$ pyenv rehash

データ分析の環境整えるならanaconda入れるほうが色々と悩まなくて済むので確実で便利です。

ついでに以下の設定をしておきました.

$ pyenv install 3.4.2
$ pyenv versions
* system (set by /Users/masashi/.pyenv/version)
  3.4.2
$ pyenv global 3.4.2
$ pyenv rehash
$ which python
/Users/masashi/.pyenv/shims/python
$ pyenv versions
  system
* 3.4.2 (set by /Users/masashi/.pyenv/version)

追記終わり。



インストールするもの

環境をあまり汚したくないので、NumpyやScipyなどはpipでVirtualenv上にインストールしていきます。

Homebrewでインストール
  • R & RStudio
  • gfortran : RやScipyを使うには必要らしい。
  • freetype,libpng : matplotlibに必要。
pipで仮想環境にだけインストール
  • IPython
  • Numpy, Scipy
  • PIL
  • matplotlib
  • scikit-learn
  • rpy2
  • Pandas
  • Statsmodels

使うか分からないライブラリもあるんですが、仮想環境なので気にせずインストールしておく。 RとPandas今後勉強していく上でどちらを使うか決めていくつもりです。


インストール方法

Rについてはすでに↓にまとまっていました。

brew update
brew tap homebrew/science
brew install freetype
brew install libpng
brew install r
brew cask install rstudio


Virtualenv上にpipでpythonライブラリのインストール

まずはpython2.7の仮想環境を構築.

$ which python2.7
/usr/local/bin/python2.7
$ mkvirtualenv analysis --python=/usr/local/bin/python2.7
(analysis)$ which pip
/Users/masashi/.virtualenvs/analysis/bin/pip
(analysis)$ pip list
pip (1.5.4)
setuptools (2.2)
wsgiref (0.1.2)

Virtualenv上の仮想環境なので使うか分からなくてもごっそりpipでインストールしておきます。

pip install numpy
pip install scipy
pip install matplotlib
pip install pandas
pip install scikit-learn
pip install rpy2
pip install nltk
pip install patsy
pip install statsmodels
pip install ipython

matplotlibのインストールでコケた。

pip listで確認するとmatplotlibだけ入ってませんでした。↓のようなエラーメッセージが履かれています。

/usr/X11/include/ft2build.h:56:10: fatal error: 'freetype/config/ftheader.h' file not found

#include <freetype/config/ftheader.h>

         ^

1 warning and 1 error generated.

error: command 'clang' failed with exit status 1

調べてみるとStackOverFlowで同じような症状の方をいくつか見つけました(こちらこちら)。 freetype/usr/X11/include/ではなく/usr/X11/include/freetype2/freetypeにあるようです。↓のようにシンボリックリンクを作成すれば解決しました。

$ sudo ln -s /usr/X11/include/freetype2/freetype /usr/X11/include/.
$ pip install matplotlib

pipについて

pip最近使い出したのですが、本当に便利ですね。(参考:pip って何(・ω・ ))

一度インストールしてしまえば、

pip freeze > mypackages.txt
pip install -r packages.txt

で楽できる。また↓のようにバンドルしておくことも可能。

pip bundle -r mypackages.txt hoge.pybundle
pip install hoge.pybundle

一応何かの役に立つかもしれないのでpip freezeも残しておきます。

$ pip freeze
PyYAML==3.10
backports.ssl-match-hostname==3.4.0.2
ipython==1.2.1
matplotlib==1.3.1
nltk==2.0.4
nose==1.3.1
numpy==1.8.0
pandas==0.13.1
patsy==0.2.1
pyparsing==2.0.1
python-dateutil==2.2
pytz==2014.1.1
rpy2==2.3.9
scikit-learn==0.14.1
scipy==0.13.3
six==1.6.1
statsmodels==0.5.0
tornado==3.2
wsgiref==0.1.2


参考資料


Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理