前提
- 本記事はMacユーザーが対象となりますが、M1搭載のMacについては未だ未知数なことも多いため対象外です。anacondaは問題なく動作するそうです。
- デフォルトの状態のMacから環境構築していきます。bashではなくzshの人などは適宜、読み替えてください。
- windowsもそのうち書きます。
はじめに
Mac上にPythonでのデータ分析環境を整えることを目的とします。
ひとまず、MacにPython3系をインストールしてJupyter Notebookで作業できるようにすることを目標にします。Jupyter Notebookとは、ブラウザ上で動作するPythonの対話型実行環境です。
以下の2種類の方法を紹介します。
- 手っ取り早く始めたい方向け
- 長く使い続けたい方向け
手っ取り早く始めたい方へ
手っ取り早く始めた方は、AnacondaさえインストールしてしまえばOKです。
Pythonそのものとよく使われるライブラリを一括で管理できるパッケージです。これを入れておくとひとまず必要なモノはすべてそろうので、ある意味オススメではあります。
ただ、Anacondaというものは、Python環境をそれひとつで形成しきってしまっているため、その外部のことをやろうとすると、途端に難しくなります。(筆者の感想も入ってます)
あと重い...。
検索すると様々な記事が出てきますが、公式がおすすめなのでこちらを参考に
インストールしてみましょう。
#長く使える環境を作りたい方へ
なるべく開発環境が汚れないような構成にしつつ、不要なモノを使わないように構築していきます。
poetryだけでも十分強力なので、anyenvとpyenvのインストールはとばしても構いません。
Homebrewのインストール
これは必須です。
Homebrewの公式ページはこちら
アプリケーションの中からターミナル(黒い画面に文字が書いてあるアレです)
を用意して、スクリプトを貼り付けて実行してください。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
anyenvのインストール(とばしてもいい)
**env系のツールをまとめて管理できます。後にJavascriptやRubyを使いたくなったときにも、バージョン管理ツールを管理できるので入れておくことをおすすめします。
公式はこちら
$ brew install anyenv
$ echo 'eval "$(anyenv init -)"' >> ~/.zshrc
$ anyenv init
$ exec $SHELL -l
$ anyenv install --init
pyenvのインストール
何かと便利なので紹介します。
Pythonそのものバージョン管理に使います。
$ anyenv install pyenv
or
# anyenvをinstallしなかった人は
$ brew install pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
# 適用
$ source .bash_profile
続いて好きなバージョンのPythonを入れます。
$ pyenv install -l
でインストール可能な一覧が出てきます。
おすすめは3.6~3.8くらい。
その後、インストールしたいバージョンを指定して実行(以下の例はpython3.7.5)
$ pyenv install 3.7.5
あとは環境を適用させるだけです。
# PC全体に適用させたい場合
$ pyenv global 3.7.5
#ディレクトリ下だけの場合
$ pyenv local 3.7.5
poetryのインストール
Pythonのモジュール管理を行います。
公式ドキュメントはこちら
日本語もありました。こちら
$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
$ echo '$HOME/.poetry/bin:$PATH' >> ~/.bashrc
#zshの場合これだけだとエラーする可能性があります。その場合は以下のコマンド
$ echo '$export PATH="$HOME/.poetry/bin:$PATH"' >> ~/.zsh
$ source ~/.bashrc
# 環境を各ディレクトリ直下に作るためのコマンド
$ poetry config virtualenvs.in-project true
実際に使う場合
新しい作業ディレクトリを作成し、移動したら
$ poetry init
対話型で、質問に答える形で環境を作っていきます。
これを行うことでpyproject.toml
というファイルができます。環境の設計図だと考えてください。
ここで入れ忘れたモジュールがあっても後に追加できます。
$ poetry add モジュール名
$ poetry install
jupyterを使う場合
#少し時間がかかります
$ poetry add jupyter
# 起動
$ poetry run jupyter notebook
個人的にはnotebookよりもjupyterlabの方が使いやすいのでおすすめ。
$ poetry add jupyterlab
$ poetry run jupyter lab
起動の際はjupyter
とlab
の間に空白が必要です。
poetryの便利なその他のコマンド
# poetry自身のアプデ
$ poetry self update
# poetry内の.pyファイルの実行
$ poetry run python hoge.py
# 環境内に入る(出る時はexit)
$ poetry shell
最後に
Googlecolabも非常に強力ですが、最初から環境が用意してあるがゆえに、中で何が行われているか理解しにくいです。ローカルに一度でも環境を構築した経験があれば、この先も非常に強い武器となります。ぜひ臆せず挑戦してみてください。質問はいつでも受け付けています。
余談
序盤でも触れたAnacondaの話を少しします。インストール時にパスの設定するのですが、Anacondaの/bin下の設定がOSのもともとの環境と干渉しあい思わぬ不具合を生みやすいです。UNIXベースのOSということもあり、自分の実行環境がよくわからなくなるなどの欠点がWindowsと比べ多いという問題点があります。Windowsの場合は干渉するものはありませんし、最初からPythonが入っていないため環境の準備が少々面倒です。なのでMacに比べてAnacondaの利用は実用的だと思ってます。(筆者がMacユーザーのため、偏見は少し入ってます)
あと必要のないツールも有無を言わさず大量に入っているため、容量の圧迫は余儀なしです。