MacのPythonを2系から3系にアップデートする

# 概要
　この記事は初心者の自分がRESTfulなAPIとswiftでiPhone向けのクーポン配信サービスを開発した手順を順番に記事にしています。技術要素を1つずつ調べながら実装したため、とても遠回りな実装となっております。

　Macには元からPythonがインストールされていますが、OS 10.15の時点でもバージョンが古い2系です。実際にPythonを書くとなると皆さん3系にアップデートされているようです。そこで自分も3系にアップデートをしたのでその際の手順を記録します。

### 参考URL
https://prog-8.com/docs/python-env

### 作業環境
Mac OS 10.15 Catalina
固定ネットワーク回線


# Pythonのアップデート手順
Mac環境でオススメされている手順は下記のようです。

* 現在インストールされているPythonのバージョンを確認
* Homebrewをインストール
* Homebrew を使ってpyenvをインストール
* pyenv を設定
* pyenvを使ってPython 3系をインストール

### 現在インストールされているPythonのバージョンを確認
まずは念のため自分のMacのPythonのバージョンを確認します。ターミナルを開いて下記のコマンドを入力するとバージョンが表示されます。

```
$ Python -V
```

自分のMacにインストールされているバージョンは2系の 2.7.16 でした。


### Homebrewのインストール
_事前にXcodeを最新版にアップデートしておく事をオススメします。自分の場合、Xcodeが10.3（最新版は作業時点で11.1）の状態でHomebrewをインストールしようとしたところ、インストール中に走る 「Command tools for Xcode 11」のアップデートが上手く完了せず、Xcodeを最新版にアップデートすると解消しました。_

Homebrewは開発に必要なミドルウェアなどのパッケージをインストール、管理してくれるツールです。Macのみに対応しています。では早速、Homebrewをインストールします。

[Homebrewのサイト](https://brew.sh/index_ja)にアクセスして、トップページに表示されているインストール用のスクリプトをコピーします。

<img width="500" alt="brew-web.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526594/fe110230-e41c-d9da-ecb4-9b783dc5abbf.png">


コピーしたスクリプトをターミナルに貼り付けて実行します。途中でEnterキーの入力やMacのパスワードの入力を求められる事があります。また 「Command tools for Xcode 11」 などのアップデートが実行される事があります。
Homebrewのインストールが上手くいくとターミナルにこのような表示が出ます。

<img width="541" alt="brew-install-success-m.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526594/d76c26ce-e476-fb19-225a-20d1380055be.png">



ターミナルでHomebrewがインストールされていることを確認します。バージョンを表示するコマンドを実行して、バージョンが表示されればインストール成功です。

```
＄ brew -v
```

### Homebrew を使ってpyenvをインストール
pyenvはPythonをインストールするためのツールです。まずはHomebrewを使ってpyenvをインストールします。

```
$ brew install pyenv
```
<img width="571" alt="pyenv-installing_m.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526594/7a39ec59-7270-531b-540d-1867ecebd505.png">

1、2分でインストールが完了しました。インストールされている事を確認します。バージョンを確認するコマンドを実行して、表示されればインストール成功です。

```
$ pyenv -v
```


### pyenv を設定
pyenvでpythonをインストールするには、Macの「.bash_profile」というファイルに設定の追加が必要です。コマンドを使って設定用のコードを追加します。3つのコマンドを実行します。コマンドで上手く設定出来れば何も表示されません。

```
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
```


### pyenv を使ってPythonをインストールする

まずインストールできるpythonのバージョンを確認します。下記のコマンドを実行するとバージョンのリストが表示されます。

```
$ pyenv install --list
```
<img width="571" alt="python-versions-list-01_m.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526594/57a53b3b-ef72-9926-a1d2-c09b200b4ca4.png">



今回は3.7.5rc1をインストールする事に決定しました。
3.7系にした理由は、3系のPythonでマイナーアップデートがある程度されているメジャーバージョンだからです。3.7系最新の3.7.5rc1を選択しました。3.8系はまだ3.8.0と3.8-dev しかないので少し様子見します。

下記のコマンドで Python 3.7.5rc1 をインストールします。

```
$ pyenv install 3.7.5rc1
```
<img width="569" alt="python-installed_m.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526594/90c95661-ffbb-cb43-6822-720e00105905.png">


インストールできたかコマンドで確認します。

```
$ pyenv versions
```

すると、インストールしたPythonのバージョンが表示されますが、「system （〜」と表示がされた方に「＊」が付いています。この状態ではインストールしたPythonが有効になっていません。有効にするにはグローバル設定が必要です。設定をしないとシステム内で古いバージョンが使われます。コマンドは下記の通りです。

```
$ pyenv global 3.7.5rc1
```

もう一度 pyenv versions コマンドを実行して設定が反映された事を確認します。グローバル設定したPythonのバージョンが有効になっていれば、Pythonのバージョンを確認するコマンドを実行した時にグローバル設定したPythonのバージョンが表示されるようになります。

```
$ python -V
```

<img width="355" alt="python-setting-and-check_m.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526594/9b775f6b-7407-460d-711e-da6179105a14.png">


以上でPythonのアップデートは完了です。

次は [Pythonの簡単なプログラムを書いて動かしてみます](https://qiita.com/Ajyarimochi/items/ab72faf8586f63a71e29)