Python システム・環境

MacにPythonをインストールする:Homebrewとpyenvを使う(2019年最新版)

Mac に Python をインストールするときは Homebrew を利用します。ここでは Homebrew がインストールされているものとして、その後の手順を説明します。

Mac に Python をインストールする手順

  1. Homebrew を更新する
  2. pyenv をインストールする
  3. pyenv の環境変数を設定する
  4. Python をインストールする
  5. 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

ヒント:

  1. vi はファイルを読み書きするためのツール。終了するときは :q を入力する
  2. .bash_profile はユーザーディレクトリの直下に入っている
  3. .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

で更新を反映させてください。それでもバージョンが更新されなかったら、ターミナルを一度終了させてください。

エラーが起きたときにチェックすること

  1. Homebrew は最新の状態に保たれているか?
  2. command line developer tools はインストールされているか?
  3. pyenv の環境変数はきちんと設定されているか?

特に command line developer tools は問題になりやすいので注意しましょう。