Python環境の構築 (Mac with Anaconda by Homebrew)

Anaconda (Python) 環境の構築 on Mac

最近、有機化学の分野でも急速にAIブーム・データサイエンスブームが到来しています。その上で大人気なのがPythonです。Pythonは現在のデータサイエンスにかかせないプログラミング言語です。また、Python上で動くグラフ描画ライブラリ matplotlib を使うと、美しい図が比較的簡単に作れます。私が、素人なりに MacPython環境を整えるときに行った作業を公開しておこうと思います。

Mac にはもともと python が入っていますが、これはバージョンはpython2で古く、現在主流であるpython3とは異なります。また、Pythonはいろいろなモジュールを組み合わせて使いますが、データサイエンスをするのなら、データサイエンス関連の主要パッケージがひとまとめになったパッケージである Anaconda を使うのが便利です。 Anaconda は最初から Mac に入っている python と競合するので pyenvvirtualenv (Pythonの複数のバージョンをインストールして切り替えられる) を使って別途インストールしました。

python は今回紹介する環境構築法以外にも様々な環境構築法が知られていて(いろいろ流派があるようで)、いささか混乱しました。個人的には今回紹介する方法が一番分かりやすいと思います。Dockerとかいわれてもよくわからん。

あらかじめ入れておくもの

Homebrew, iTerm2 (通常のターミナルでも可), zsh (なくても可) はインストールしておいてください。

関連記事

Homebrew (パッケージ管理システム) を使おう! 有機化学をやるMacユーザーにとって、OfficeやChemDrawのように必須というわけではないけれど、とても便利なソフトウェアとしてHomebrewがあります。Homebrew[…]

pyenv, pyenv-virtualenvのインストール

まず、Homebrew から pyenvpyenv-virtualenv をインストールします。

$ brew update
$ brew upgrade
$ brew install pyenv pyenv-virtualenv

~/.zshrcに下記を追加します。bashを使っている人は .bashrc に書きます。

# pyenv
PYENV_ROOT=~/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

# brew doctor 対策
alias brew="env PATH=${PATH/\/Users\/${USER}\/\.pyenv\/shims:/} brew"

.zshrc を保存したら、.zshrc の設定を読み込みます。

$ source .zshrc

pyenv を用いた Anaconda のインストール

次に pyenv でインストールできる python を探します。下記コマンドを入力します。

$ pyenv install --list

インストール可能なpythonのバージョン一覧がでてきます。このなかから、一番新しい (数字の大きいもの) Anacondaを探します 。2020年6月1日現在では anaconda3-5.3.1です。このバージョンをインストールします。

$ pyenv install anaconda3-5.3.1

仮想環境の構築

Anaconda をインストールできたら、仮想環境を作成します。ここでは anaconda3-5.3.1 をベースに ana1 という仮想環境を作るとします。

※Pythonは作業ごとに最適となる環境 (モジュールの種類やバージョンなど)が異なるので、作業によって仮想環境を構築してつかいわけて作業するのが主流です(みたいです)。

下記コマンドでanaconda3-5.3.1 をベースとする仮想環境 ana1 が作成されます。

$ pyenv virtualenv anaconda3-5.3.1 ana1
$ source activate ana1 #ana1を有効化する
$ source deactivate #ana1を無効化します

次にpythonの切り替えを行います。python作業フォルダ(ここではpy-testとします)のみ、仮想環境 ana1 に切り替わるように設定します。まず、テストフォルダ py-test を作成し、そのフォルダのpythonが何かを確認します。

$ mkdir ~/Documents/py-test #作業フォルダpy-testの作成
$ cd ~/Documents/py-test #py-testフォルダに移動
$ pyenv versions

この段階では、system の(Macに元々入ってる) python が適用されています。そこで、下記コマンドでは python を切り替えます。

$ pyenv local ana1 #python-testフォルダのみ、ana1に切り替わる
$ pyenv versions

python が切り替わるとコマンドプロンプトの前に (ana1) と表示されます。また、pyenv versions と入力すると、でana1の前に*がついています。これでこのフォルダでのpythonが仮想環境ana1に切り替わっていることが確認できます。次から特に設定しなくても、このフォルダでのpython環境は自動的にana1になります

pyenv の挙動がおかしいときは下記コマンドを入力して、pyenvrehash してからもう一度作業してみて下さい。

$ pyenv rehash  #pyenvの挙動がおかしいときに入力

各種モジュールのインストール

通常の pythonpip コマンドでインストールしますが、Anacondaconda コマンドでインストールします。まずは主要パッケージ類をインストールします。

$ conda install scipy numpy pandas jupyter jupyterlab

  • “pyenv: conda: command not found” と言われたら

環境によっては、conda を認識してくれません。その時は、.zshrc に下記を追記します。”anaconda3-5.3.1″の数字はインストールしたanacondaのバージョンにあわせます。書き換えたらiterm2を再起動します。(2021年4月8日追記)

export PATH="~/.pyenv/versions/anaconda3-5.3.1/bin/:$PATH"

matplotlib をインストールします。

$ conda install matplotlib

scikit-learn を(使うなら)インストールします。

$ conda install scikit-learn

conda コマンドでカバーされていないモジュール (GPyなど) はpipコマンドでインストールします。
※ pipとconda、両方のコマンドを混ぜて使うと、最悪環境が破壊されてしまうそうですが、個人的には混ぜて使っています…。

$ pip install GPy

その他要るものをインストールします。この辺は臨機応変です。これにて設定終了です。

Python を使う

Jupyter Lab の起動

Python の作業は Jupyter Lab の上で行います。Jupyter Lab を起動する時は作業フォルダで jupyter lab と入力すると起動します。

$ cd Documents/py-test
$ jupyter lab

>mitsudo.net

mitsudo.net