MacにPythonをインストールする:Homebrewとpyenvを使う(2019年最新版)
Mac に Python をインストールするときは Homebrew を利用します。ここでは Homebrew がインストールされているものとして、その後の手順を説明します。
Mac に Python をインストールする手順
- Homebrew を更新する
- pyenv をインストールする
- pyenv の環境変数を設定する
- Python をインストールする
- Python のバージョンを設定する
pyenv は Python のバージョンを切りかえるためのツールです。Python そのものをインストールすると、その後 Python のバージョンを更新するときに苦労します。なるべく pyenv を経由して Python をインストールすることをおすすめします。
Homebrew を更新する
Homebrew を更新します。
brew update
ここで次のエラーが出たら Python のインストールに失敗します。
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
特に Mac のバージョンを更新した後にこのエラーは起きます。このエラーが出たら
xcode-select --install
をターミナルに入力してください。その後、自動的に画像のような画面が出てきます。
これは command line developer tools のダウンロードとインストールで、環境によって 30 分以上の時間がかかります。
pyenv をインストールする
pyenv がきちんと入っているか確かめましょう。
pyenv -v
おそらく pyenv のバージョンが表示されます。次のコマンドで pyenv をインストールします。
brew install pyenv
インストールが終わると .pyenv というディレクトリがユーザー直下にできます。
/Users/yamada/.pyenv
注意:.pyenv は隠しディレクトリになっています。これからインストールする Python はこのディレクトリに入るため、「コンピューターを汚さない」ようにできるのです。
pyenv の環境変数を設定する
インストールした pyenv を実際に使うには、Mac の環境変数に pyenv を入れなくてはいけません。次のコマンドを順番に入力してください。
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
するとユーザーフォルダに .bash_profile というファイルができます。
vi ~/.bash_profile
上のコマンドで .bash_profile の中身を確認してください。下のような文字があったら設定は合っています。
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
確認したら、下のコマンドで設定を反映させます。
source ~/.bash_profile
ヒント:
- vi はファイルを読み書きするためのツール。終了するときは :q を入力する
- .bash_profile はユーザーディレクトリの直下に入っている
- .bash_profile に書かれた設定を更新するのを忘れない
Python をインストールする
いよいよ Python をインストールします。まず pyenv でインストール可能の Python バージョンを確認します。
pyenv install --list
下のような非常に長いリストが出てきます。
3.6.1
3.6.2
3.6.3
3.6.4
3.6.5
3.6.6
3.6.7
3.6.8
3.6.9
3.7.0
3.7-dev
3.7.1
3.7.2
3.7.3
3.7.4
3.7.5
3.7.5rc1
3.8.0
3.8-dev
3.9-dev
activepython-2.7.14
activepython-3.5.4
activepython-3.6.0
anaconda-1.4.0
anaconda-1.5.0
その中に数字だけの列があります。例えば 3.7.5 といった列です。それが Python のバージョンです。数字の隣に dev がついたものは開発中のバージョンなので、特別な理由がない限りは選ばないでください。上のリストを見ると 3.8.0 が一番新しいとわかります。下のコマンドを入力してください。
pyenv install 3.8.0
筆者の環境では 3.8.0 でしたが、日が経つとこのバージョンは変わります。インストールが終わると
Installed Python-3.8.0 to /Users/yamada/.pyenv/versions/3.8.0
のように表示されます。ディレクトリの構造を見ると Python の切りかえができそうな気がしますね。
pyenv でインストールした Python のバージョンを確認する
Python のバージョンを確認しましょう。
pyenv versions
system
* 3.8.0 (set by /Users/yamada/.pyenv/version)
pyenv でインストールした Python はすべて versions /Users/yamada/.pyenv/versions というディレクトリに入ります。
Python のバージョンを設定する
Python のバージョンを Mac に教える必要があります。下のコマンドを入力してください。
pyenv global 3.8.0
これで Mac は Python のバージョンを 3.8.0 と認識するようになります。実際に Python のバージョンを確認してください。
python -V
すると
Python 3.8.0
と表示されます。
Python のバージョンが 2 系で表示されるとき
Python のバージョンが 3.8.0 にならず、最初から入っている 2 系になるとき、おそらく pyenv の環境変数に問題があります。
pyenv init
を入力すると下のようなメッセージが表示されます。
# Load pyenv automatically by appending
# the following to ~/.bash_profile:
eval "$(pyenv init -)"
この状態でもう一度バージョンを確認してください。
python -V
バージョンが表示されましたか? もし表示されなかったら .bash_profile の中身を見て
eval "$(pyenv init -)"
があることを確認してください。この行が最後の行で後に改行もなにもなかったら、適当に改行してください。ファイルを更新したら
source ~/.bash_profile
で更新を反映させてください。それでもバージョンが更新されなかったら、ターミナルを一度終了させてください。
エラーが起きたときにチェックすること
- Homebrew は最新の状態に保たれているか?
- command line developer tools はインストールされているか?
- pyenv の環境変数はきちんと設定されているか?
特に command line developer tools は問題になりやすいので注意しましょう。