ステージ1: 環境構築 (データマイニング班)
pyenv + anaconda で環境構築します。- 環境構築前の想定環境
- Homebrew のインストール
- pyenv, pyenv-virtualenv のインストール
- anacondaのインストールと、pyenvによる環境移動の仕方
- scikit-learnの動作確認
- Mercurial の設定(設定済みの人は不要)
- Python 開発環境の設定
- 単体テストツール pytest の導入
興味があれば tox(複数のPython仮想環境に対してテスト) も試してみよう。
- emacs elisp (for emacs user)
vimな人は似たようなプラグイン(neocomplacacheというのがあるらしい)を探して入れてみよう。少なくとも(a)自動補完機能は自前で追加すること、(b)Pythonスクリプト編集時のインデントは4スペースに設定すること。プログラミングには少なくともインデントや自動補完に対応できるエディタが必要でしょう。atton先生資料: shebang と Vim のプラグイン
- 以下は後日利用。実験ではサンプルスクリプトを見せるぐらいで、必須ではありません。
- 自然言語処理用パッケージのインストール
- (Python追加) NLTKの動作確認
- 最終的な環境
- 環境構築前の想定環境
- OS: Mac OS X 10.9.11 以降 (10.7.x以降であれば同じ方法で問題無いはず?)
- Xcode: 8.x (最新にアップデートしよう)
- Python: 2.7.x
- Mercurial: 3.4.2 (3.0以降なら多分OK)
- Homebrew: 1.0.4 (2016-09-27時点)
主に自然言語処理用ライブラリ(mecab + 辞書naist-jdic-utf8)のインストールのために利用。MacPortsでも構わない。
- Homebrew のインストール
# インストール済みなら不要。 # 以下は /opt/homebrew にインストール場合の手順。 # インストール先の準備。 sudo mkdir -p /opt; cd $_ sudo mkdir homebrew sudo /usr/sbin/chown ${USER}:staff homebrew # /opt/homebrewにhomebrewをインストール curl -L https://github.com/Homebrew/homebrew/tarball/master | tar xz --strip 1 -C homebrew # Tips: 初めてhomebrewをインストールする人は、 # 環境変数PATHに /opt/homebrew/bin を追加しよう。
- pyenv, pyenv-virtualenv のインストール
brew install pyenv brew install pyenv-virtualenv echo 'export PYENV_ROOT=/opt/homebrew/var/pyenv' >> ~/.zshrc echo 'if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi' >> ~/.zshrc # ターミナルを再起動して、~/.zshrc が適切に読み込まれるか確認。 # ターミナル起動時にエラーが出力されなければOK。 pyenv --version # -> pyenv 1.0.2
- anaconda のインストールと、pyenvによる環境移動の仕方。
pyenv install anaconda3 # Python3版のanacondaバージョン一覧が出てくるので、最新をセレクト。 pyenv install anaconda3-4.1.1 # anaconda標準のmatplotlibには不具合があるためインストールし直し。 pip uninstall matplotlib pip install matplotlib # 環境の切り替え方。 # 「pyenv global [環境名]」で、デフォルト環境(global)を指定。 # インストールした環境「anaconda3-4.1.1」に変更するなら次のようにする。 pyenv global anaconda3-4.1.1 python --version # -> Python 3.5.2 :: Anaconda 4.1.1 (x86_64) # 指定した環境下におけるPythonが選択されてるならOK。 # Mac OS X標準環境に戻りたいなら「system」を指定する。 pyenv global system python --version # -> Python 2.7.12 # インストール可能なバージョン一覧の確認 pyenv install --list # インストールされてる環境一覧の確認方法 pyenv versions # 現在の環境情報 pyenv version
- scikit-learnの動作確認。
# The Iris Datasetにある # plot_iris_dataset.py をダウンロード or コピー作成。 wget http://scikit-learn.org/stable/_downloads/plot_iris_dataset.py python plot_iris_dataset.py # 実行後に2つのグラフが生成されればOK。
- エンコーディングの設定。(~/.zshrc に下記を追加)
export HGENCODING=UTF-8
- エディタの設定。(~/.zshrc に下記を追加。vim好きな人はvimでok)
EDITOR=emacs
- ~/.hgrcのサンプル: hgrc-sample
- 上記サンプルをダウンロードし、usernameを自分用に修正。
- 編集したファイルを ~/.hgrc としてファイル名を変更し、ホームディレクトリに保存。
- ~/.hgignoreのサンプル: hgignore-sample
emacsで編集するとデフォルトで作成される「更新前のファイル(*.~)」等、hgでバージョン管理する際には不要なファイルを除外するための設定を書いた例。そのまま利用するなら、ダウンロードしたファイルを ~/.hgignore として保存してください。
- 環境変数PYTHONSTARTUPの設定(~/.zshrc)
export PYTHONSTARTUP=~/.pystartup # 設定終了後にsourceコマンドで設定を反映させること。
- ~/.pystartupの設定例: pystartup-sample
wget http://ie.u-ryukyu.ac.jp/~tnal/2015/info4/dm/pystartup.sample mv pystartup.sample ~/.pystartup
- Pythonスクリプトを書く際のお約束
#!/usr/bin/env python3 # -*- coding: utf-8 -*-
- 好みに応じて PyCharm。(デバッグ便利)
- Pytestのインストール。(anacondaインストールしたならインストール済み)
pip install pytest
- 動作確認。
py.test --version # This is pytest version 2.6.2 (略)
- 初めてのテスト実行。リンク先の通り test_sample.py を作成し、py.test を使ってテストさせてみよう。
py.test # (確認1) assert について AssertionError が返って来たら正常動作。 # (確認2) 関数 func() が正しく記述されてると仮定し、テストをそちらにあわせて修正し、テストしてみよう。
- 関連URL
- elisp を保存するためのディレクトリを用意。
mkdir ~/.emacs.d/elisp
- elisp のインストールを支援するツール auto-install.el をインストール。「begin」や「end」はエディタで編集追加する範囲を明記しているだけで、begin/end行そのものを追加する必要はありません。
cd ~/.emacs.d/elisp/ wget http://www.emacswiki.org/emacs/download/auto-install.el emacs ~/.emacs ====begin==== ;;; emacs lisp を保存しているディレクトリの設定 (setq load-path (cons "~/.emacs.d/elisp" load-path)) ;;; auto-install.el 用の設定 (require 'auto-install) (setq auto-install-directory "~/.emacs.d/elisp/") (auto-install-update-emacswiki-package-name t) (auto-install-compatibility-setup) ; 互換性確保 ====end==== # *auto-install.el は、emacs起動時に毎回 emacswiki にアクセスしようとするので、 # 通常作業時は邪魔だと感じるなら普段はコメントアウトしておき、 # auto-install を使いたい時だけコメントを外すようにすると良いでしょう。
- auto-install.el を利用して、自動補完ツール auto-complete.el をインストールする。
emacs ====begin==== Esc-x, install-elisp-from-emacswiki [リターンキー] # 頭の[Esc-x]は「Escを一度押して、離してからxを入力」する動作。 # その後 [M-x] と切り替わるはずなので、install以降を入力してください。 auto-complete.el [リターンキー] *後は画面下の指示通りに進め、インストール確認になったら C-c, C-c。 ====end====
- auto-complete.el をデフォルトで起動するようにする。
emacs ~/.emacs ====begin==== ;;; auto-complete.el 用の設定 (require 'auto-complete) (global-auto-complete-mode t) ====end====
- 適当なファイルを開いて auto-complete.el の動作確認。
# 例えば、test.py という空のpythonスクリプトを作成し、 # import sys # を入力する。その後、もう一度"i"だけ入力した時点で # 「iから始まるキーワード一覧」が候補として示されれたらOK。
- org-babelの設定を流用し、Pythomスクリプト(.py)編集中のインデント設定(インデントを半角スペース4つに設定)。
emacs ~/.emacs ====begin==== (setq load-path (cons "/usr/local/share/emacs/site-lisp" load-path)) (require 'org-install) (org-babel-do-load-languages 'org-babel-load-languages '((R . t) (ruby . t) (python . t) (sh . t) (dot . t) (emacs-lisp . nil) )) ====end====
以下は後日利用。実験ではサンプルスクリプトを見せるぐらいで、必須ではありません。
- 9/27時点で動作確認もしていません。
- MeCab(形態素解析器)と辞書のインストール
brew install mecab brew install mecab-unidic
- MeCabの動作確認
mecab # 適当に日本語テキストを入力してみる # mecabコマンドを実行すると入力待ちになるため、 # 適当に日本語テキストを入力してから改行すると解析結果が出力される。 # このとき文字化けしなければOK。
- mecab-python(Pythonバインディング)をインストール
pip install mecab-python3
- pythonを起動してインタラクティブ・モードでmecab-pythonの動作確認
import MeCab mecab = MeCab.Tagger() sent = "日本語を適当に入力してみる" print(mecab.parse(sent)) # 解析結果が文字化けせずに出力されるならOK。
# anacondaインストールしたなら最初からインストール済み。 pip install nltk # 動作確認。 python >>> import nltk >>> nltk.__version__ '3.2.1'
- OS: Mac OS X 10.11.x
- Python: 3.5.2 :: Anaconda 4.1.1 (x86_64)
- Mercurial: 3.9.1
- Numpy, Scipy, Matplotlib, scikit-learn
- (mecab, mecab-python3, NLTK)