ステージ1: 環境構築 (データマイニング班)
pyenv + anaconda で環境構築します。環境構築後の想定環境にあるパッケージが使えるなら、自由に環境構築して貰って構いません。- 環境構築前の想定環境
- Homebrew のインストール
- pyenv, pyenv-virtualenv のインストール
- anacondaのインストールと、pyenvによる環境移動の仕方
- scikit-learnの動作確認
- 環境構築後の想定環境
- Mercurial の設定(設定済みの人は不要)
- Python 開発環境の設定
- 単体テストツール pytest の導入(Python標準のdoctestでもOK)
- emacs elisp (for emacs user)
各自好きなエディタ or 統合開発環境使おう。
vimな人は似たようなプラグイン(neocomplacacheというのがあるらしい)を探して入れてみよう。少なくとも(a)自動補完機能は自前で追加すること、(b)Pythonスクリプト編集時のインデントは4スペースに設定すること。プログラミングには少なくともインデントや自動補完に対応できるエディタが必要でしょう。atton先生資料: shebang と Vim のプラグイン
- 統合開発環境 PyCharm のインストール
- 以下は後日利用。実験ではサンプルスクリプトを見せるぐらいで、必須ではありません。
- 自然言語処理用パッケージのインストール
- (Python追加) NLTKの動作確認
- 環境構築前の想定環境
- OS: Mac OS X 10.12 以降 (10.7.x以降であれば同じ方法で問題無いはず?) *High Sierraは未確認。
- Xcode: 9.x (最新にアップデートしよう)
- Python: 2.7.x
- Mercurial: 4.2
- Homebrew: 1.3.4 (2017-10-02時点)
主に機械学習・自然言語処理用ライブラリインストールのために利用。MacPortsでも構わない。
- Homebrew のインストール: 学科のスタートアップ参照。
- pyenv, pyenv-virtualenv のインストール。pyenvで構築する環境は $PYENV_ROOT 以下に保存されるので、変更したい時はお好みでどうぞ。
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 が適切に読み込まれるか確認。 # pyenvが実行できて、 # ターミナル起動時にエラーが出力されなければOK。 pyenv --version # -> pyenv 1.1.4
- anaconda のインストールと、pyenvによる環境移動の仕方。
pyenv install anaconda3 # Python3版のanacondaバージョン一覧が出てくるので、最新をセレクト。 pyenv install anaconda3-4.4.0 # 環境の切り替え方。 # 「pyenv global [環境名]」で、デフォルト環境(global)を指定。 # インストールした環境「anaconda3-4.4.0」に変更するなら次のようにする。 rehash pyenv global anaconda3-4.4.0 which python # -> /opt/homebrew/var/pyenv/shims/python python --version # -> Python 3.6.1 :: Anaconda 4.4.0 (x86_64) # 指定した環境下におけるPythonが選択されてるならOK。 # Mac OS X標準環境に戻りたいなら「system」を指定する。 pyenv global system python --version # -> Python 2.7.x # インストール可能なバージョン一覧の確認 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。
- 環境構築後の想定環境。pip freezeの主要パッケージ一覧。#付きは明示的に使うわけじゃないけど、便利なツール。
#jupyter==1.0.0 matplotlib==2.0.2 numpy==1.12.1 #pandas==0.20.1 scikit-learn==0.18.1 scipy==0.19.0
- エンコーディングの設定。(~/.zshrc に下記を追加)
export HGENCODING=UTF-8
- エディタの設定。(~/.zshrc に下記を追加。vim好きな人はvimでok)
EDITOR=emacs
- ~/.hgrcのサンプル: hgrc-sample
- 上記サンプルをダウンロードし、usernameを自分用に修正。
- 編集したファイルを ~/.hgrc としてファイル名を変更し、ホームディレクトリに保存。
- ~/.hgignoreのサンプル: hgignore-sample
emacsで編集するとデフォルトで作成される「更新前のファイル(*.~)」等、hgでバージョン管理する際には不要なファイルを除外するための設定を書いた例。そのまま利用するなら、ダウンロードしたファイルを ~/.hgignore として保存してください。
- Pytestのインストール。(anacondaインストールしたならインストール済み)
pip install pytest
- 動作確認。
pytest --version # This is pytest version 3.0.7 (略)
- 初めてのテスト実行。リンク先の通り test_sample.py を作成し、pytest を使ってテストさせてみよう。
pytest # (確認1) assert について AssertionError が返って来たら正常動作。 # (確認2) 関数 func() が正しく記述されてると仮定し、テストをそちらにあわせて修正し、テストしてみよう。
- 関連URL
- PyCharm公式サイトからCommunity版をダウンロード。
- 環境設定(インタプリタの指定)。
1. PyCharmを起動。 2. アプリメニュー(画面左上)の「PyCharm Communiti Edition」から「Preferences...」を選択。 3. 「Project Interpreter」を選択し、右側の歯車アイコン」から「Add Local」を選択。 4. ターミナルで python のインストール場所を確認(whichコマンド)し、それを選択。 (指示通りなら「/opt/homebrew/var/pyenv/shims/python」なはず) 5. Apply してから、OK。(しばらく環境読み込みに時間かかります) (Apply終了後、インタプリタに自分がわかりやすい名前を付けることができる。歯車アイコンからMoreを選んで編集しよう)
- 動作確認。
1. 適当な名前の新規プロジェクトを作ろう。 2. 「plot_iris_dataset.py」というファイルを新規作成。 3. The Iris Datasetのコードを、先程作った空ファイルにコピペ。 4. 実行して、グラフ生成されるならOK。
以下は後日利用。実験ではサンプルスクリプトを見せるぐらいで、必須ではありません。
- 2017/10/02時点で動作確認もしていません。
- ->2017/12/07に少し動作確認。
- MeCab(形態素解析器)と辞書のインストール
brew install mecab brew install mecab-unidic # unidic よりも、NEologdが定期更新されてるので、オススメかも。
- 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'