(環境構築メモ) Mac OS X 10.11.x + Freemind + brew + gnuplot + Python 3.5.1 + virtualenv + scikit-learn + matplotlib + pandas + mecab + mecab-python

Share on:

10.9からOS更新をサボっていたのですが、来年度から新入生相手にプログラミング教えることもあってなるべく同じ環境にしてた方がつまづくポイントを押さえておきやすいよねということで、バックアップ取ってから環境構築中です。昔はOS更新時にどのデータを移行するか選択できたのだけど、今はできないのね。細かいことを気にしないのであれば、ほぼOSアップデートするだけで済みました。

以下は比較的良く使うツール群(表題に列挙)を使えるようにするまでの道のりです。(学科専用のie-pedia的なものがあると嬉しいのかなと思いつつ、ブログにメモを残しておこう。


Freemind

これ使えないと泣けるぐらいには必須アプリ。もともとインストールしてあったのは0.9.0なんですが、起動しようとするとJRE1.6入れろと怒られます。アプリ自体を更新したら良いかと思って最新版1.1.0をインストールしてみるものの状況変わらず。1.6 or laterって書いてるのにー。仕方ないのでJRE1.6入れてみると、今度は1.1.0起動できず。0.9.0は起動できるようになったのでひとまずこれで済ますことに。


Xcode + Command Line Tools

  • Xcodeはインストール後に起動して「Xcode and iOS SDK License Agreement」にAgree。
  • その後、ターミナルから「xcode-select –install」で Command Line Toolsのインストール。

Homebrew

  • デフォルトの/usr/local以下を使うのは気持ちが悪いのでインストール先を /opt/homebrewに変更。ちなみに MacPorts の名残りで /opt/local も残ってたのだけど、これは消して置くのが正解でした。
sudo mkdir /opt/homebrew
cd /opt
sudo chown ${USER}:staff homebrew
curl -L https://github.com/Homebrew/homebrew/tarball/master | tar xz --strip 1 -C homebrew
brew update
brew upgrade
  • インストール後、PATHに/opt/homebrew/binを追加。

  • Gnuplot + AquaTerm + XQuartz

    brew install homebrew/dupes/libiconv
    brew link libiconv -force
    brew install gnuplot --with-aquaterm --with-x11
    

    Python 3.5 + virtualenv

    • 数ヶ月前に3.5を試した限りではトラブルが多かったけど、先月出てた3.5.1は大丈夫そう。ということで、本家サイトから最新版3.5.1をダウンロードしてインストール。
    • 標準のパッケージ管理ディレクトリにあれこれ追加インストールするのは使い勝手がよろしくないので virtualenv で環境作ってそこで作業。以下は実際には試していません(以前作業したものがそのまま使えた)。
    # virtualenv, virtualenvwrapperのインストール
    sudo pip install virtualenv
    sudo pip install virtualenvwrapper
    

    # virtualenv の設定

    ~/.zshrc に以下の設定を追加。

    下記if文で指定した WORKON_HOME に仮想環境が構築される。

    不要になったらここを削除しよう。

    if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh fi

  • Python 3.5.1用の環境構築。ここではpy35という名前をつけています。正しく動くなら、買いコマンド実行後にプロンプトに (py35) が追加されるはず。
  • mkvirtualenv --python=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 py35
    

    scikit learn, matplotlib, pandasのインストール

    • インストールそのものはすぐ終わり。py35の環境で下記を実行するだけ。
    pip install -U numpy scipy matplotlib scikit-learn
    pip install pandas
    
  • ただしこのままではmatplotlibがうまく起動せず。~/.matplotlib/matplotlibrcに下記を設定すると良いらしい。
  • backend : TkAgg
    
  • ここまでにインストールしたパッケージのバージョン(pip freezeの結果)。
  • cycler==0.9.0
    matplotlib==1.5.1
    numpy==1.10.4
    pandas==0.17.1
    pyparsing==2.0.7
    python-dateutil==2.4.2
    pytz==2015.7
    scikit-learn==0.17
    scipy==0.16.1
    six==1.10.0
    wheel==0.24.0
    

    mecab + unidic + mecab-pythonのインストール

    brew install mecab
    brew install mecab-unidic
    
  • unidicを参照するように、/opt/homebrew/etc/mecabrc を以下のように編集。
  • dicdir = /opt/homebrew/lib/mecab/dic/unidic
    
  • mecabが/usr/local/etc/mecabrcを参照しちゃうので、そこにリンクを貼っておく。
  • ln -s /opt/homebrew/etc/mecabrc /usr/local/etc/mecabrc
    
  • mecab-python-0.996.tar.gzをダウンロードして、下記の通りsetup.pyを修正。
  • # 元の記述
    def cmd2(str):
        return string.split (cmd1(str))
    # 変更後
    def cmd2(str):
        return cmd1(str).split()
    
  • 下記の手順でmecab-pythonをインストール。
  • export CFLAGS=-Qunused-arguments
    export CPPFLAGS=-Qunused-arguments
    python setup.py build
    sudo python setup.py install
    

    注意点して、brew版mecabには-Ochasen出力オプションが無いらしい。このため、例えばここのコード例にあるように「mecab = MeCab.Tagger(‘-Ochasen’)」するとRuntimeErrorになります。-Ochasenを諦めて、「mecab = MeCab.Tagger()」として標準出力にした上で、ステミング時にはfs[6]参照してたところをfs[7]にすると良さそうです。少なくとも上記ページのコードはこれで動きました。