ステージ1: 環境構築 (データマイニング班)
pyenv + anaconda で環境構築します。環境構築後の想定環境にあるパッケージが使えるなら、自由に環境構築して貰って構いません。- 環境構築前の想定環境
- Homebrew のインストール
- pyenv のインストール
- anacondaのインストールと、pyenvによる環境移動の仕方
- scikit-learnの動作確認
- 環境構築後の想定環境
- Git の設定(設定済みの人は不要)
- 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.13 以降 (10.7.x以降であれば同じ方法で問題無いはず?)
- Xcode: 10.x (最新にアップデートしよう)
- Python: 2.7.x
- Homebrew: 1.3.4 (2017-10-02時点)
主に機械学習・自然言語処理用ライブラリインストールのために利用。MacPortsでも構わない。
- Homebrew のインストール: 学科のスタートアップ参照。
- pyenv のインストール。pyenvで構築する環境は $PYENV_ROOT 以下に保存されるので、変更したい時はお好みでどうぞ。
### pyenv のインストール。 brew install pyenv # インストールしたままで古い場合には、その後トラブル可能性高し。 # 古い場合には brew install 時に update/upgrade しろと言われるはずなので、 # メッセージを参考に更新しよう。 ### pyenv の環境設定。既にpyenv導入済みの場合は不要です。 echo export PYENV_ROOT="$HOME/.pyenv" >> ~/.zshrc echo export PATH="$PYENV_ROOT/bin:$PATH" >> ~/.zshrc echo eval "$(pyenv init -)" >> ~/.zshrc # ターミナルを再起動して、~/.zshrc が適切に読み込まれるか確認。 # pyenvが実行できて、 # ターミナル起動時にエラーが出力されなければOK。 pyenv --version # -> pyenv 1.2.7 (2018/9/25時点)
- anaconda のインストールと、pyenvによる環境移動の仕方。anacondaは、Python3ベースのScikit-learn, Jupyterが動けばOK。
pyenv install anaconda3 # Python3版のanacondaバージョン一覧が出てくるので、最新をセレクト。 pyenv install anaconda3-5.2.0 # 環境の切り替え方。 # 「pyenv global [環境名]」で、デフォルト環境(global)を指定。 # インストールした環境「anaconda3-4.4.0」に変更するなら次のようにする。 rehash pyenv global anaconda3-5.2.0 which python # -> /opt/homebrew/var/pyenv/shims/python python --version # -> Python 3.6.5 :: Anaconda, Inc. # 指定した環境下におけるPythonが選択されてるならOK。 # Mac OS X標準環境に戻りたいなら「system」を指定する。 pyenv global system python --version # -> Python 2.7.x # インストール可能なバージョン一覧の確認 pyenv install --list # インストールされてる環境一覧の確認方法 pyenv versions # 現在の環境情報 pyenv version ### pyenvの動作方法がわかったら、anaconda3-5.2.0をglobal指定しておこう。
- scikit-learnの動作確認。
# The Iris Datasetにある # plot_iris_dataset.py をダウンロード or コピー作成。 curl -O http://scikit-learn.org/stable/_downloads/plot_iris_dataset.py python plot_iris_dataset.py # 実行後に2つのグラフが生成されればOK。
- 環境構築後の想定環境(2018/9/25時点)。pip freezeの主要パッケージ一覧。#付きは明示的に使うわけじゃないけど、便利なツール。
#jupyter==1.0.0 matplotlib==2.2.2 numpy==1.14.3 #pandas==0.23.0 scikit-learn==0.19.1 scipy==1.1.0
- Gitの設定(既に設定している人は不要)
- Gitのインストール。
- 「git --version」で 2.17以降がインストールされていることを確認できればOK。確認できない場合、「brew install git」。
- 初めてのインストール時にはいくつか初期設定が必要。
- ~/.gitignoreのサンプル: gitignore-sample
emacsで編集するとデフォルトで作成される「更新前のファイル(*.~)」等、hgでバージョン管理する際には不要なファイルを除外するための設定を書いた例。そのまま利用するなら、ダウンロードしたファイルを ~/.hgignore として保存してください。
他にも、C言語ベースの場合に「*.o」や「a.out」を書けば、コンパイルで自動生成される不要なファイルを、add対象外に指定できます。
- 編集したファイルを ~/.gitignore としてファイル名を変更し、ホームディレクトリに保存。
- Gitのインストール。
- 単体テストツールの導入。ここではpytestを例に上げていますが、doctestやその他でも構いません。
- 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
- Pytestのインストール。(anacondaインストールしたならインストール済み)
- emacs elisp(elispインストール支援, 自動補完)のインストール。興味がある人は過去の補足記事を参考にどうぞ。
- 統合開発環境 PyCharm のインストール
- 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。
以下は、実験では時間がある時にデモを見せるぐらいで、必須ではありません。
- 【興味のある人だけ】自然言語処理用パッケージのインストール
- 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。
- MeCab(形態素解析器)と辞書のインストール
- 【興味のある人だけ】NLTKのインストール、動作確認。NLTK = Natural Language Toolkit。一般的な言語処理用のライブラリ。
# anacondaインストールしたなら最初からインストール済み。 pip install nltk # 動作確認。 python >>> import nltk >>> nltk.__version__ '3.3'