Python3インストール（Mac編）

---

Pythonのインストールについては現在様々な方法があり、日々変化しています。
Qiitaでの投稿に限界を感じたので、今後は自己サイト[https://midsatoh.github.io/python/install/select_soft/](https://midsatoh.github.io/python/install/select_soft/)にて配信することにします。
今後こちらの記事の更新は行いませんので、ご了承ください。

---


# 0. はじめに
過去に投稿した「[Pythonインストール（Mac編）](https://qiita.com/ms-rock/items/6e4498a5963f3d9c4a67)」については、おかげさまでたくさんの方にいいね＆リンクしていただけました。
流石に３年前の投稿となり、世間でもPython3系の需要がPython2系を上回ったようですので、改めてPython3系のインストール方法として公開します。
以前の記事ではpipコマンドについても補足で記載していましたが、現在公開されているバージョンではプリインストールされていますので、pipコマンドのインストールについては割愛しています。

# 1. インストール対象
以下の環境を対象とした、超初心者向けのインストールおよび設定手順です。
バージョンに特に記載のない場合、2018.12.20現在での最新バージョンを使用しています。
vagrantやDockerなどの仮想環境については使用しない前提となっています。

- Mac OS X Mojave
- Python 3.7.1

# 2. Pythonのインストール
Macでは、デフォルトでPython2系がインストール済みです。今後MacOSにPython3系がプリインストールされる可能性もありますが、現時点では3系を利用する場合は別途インストールする必要があります。
今回は状況に応じて4パターンの説明を記載します。


## 2.1. pkgファイルからのインストール方法
Python.orgより、必要なバージョンのインストールファイル(pkgファイル)をダウンロードしてインストールする方法です。
他のバージョンをインストールする可能性がほとんどないような場合は、これで十分です。

まず、必要なバージョンのpkgファイルを以下のサイトからダウンロードします。
[Python.org/downloads](https://www.python.org/downloads/)
<img width="1101" alt="Python_org.png" src="https://qiita-image-store.s3.amazonaws.com/0/71222/19b61028-1a7e-0638-3b57-2474539f68c5.png">

ダウンロードしたpkgファイルを実行し、Pythonをインストールします。
基本的にはそのまま「続ける」ボタンの連打で良いでしょう。
PATHの設定は自動的に入っているはずですが、ターミナルからコマンドの場所を確認した際に

    $ which python
    /usr/bin/python

とでるようなら、~/.bash_profileに以下の文を追記しましょう。
※`3.X`の部分はインストールしたバージョンに合わせてください。

```bash:~/.bash_profile
export PATH=/Library/Frameworks/Python.framework/Versions/3.XX/bin:$PATH
```

PATHの設定が終わったら、確認を忘れずに。

    $ source ~/.bash_profile
    $ which python
    /Library/Frameworks/Python.framework/Versions/3.X/bin/python


## 2.2. Homebrewを使用したインストール方法
別のプログラミング言語でMacを開発で使用している方であれば、MacportかHomebrewなどのパッケージ管理システムを使用しているかと思います。
今回はHomebrewを使用したインストール方法を紹介します。
ただし、Homebrewを使用する場合は

- XCodeまたはApple DeveloperサイトからXCodeコマンドラインツールのインストール
- インターネットへの安定した接続環境

が前提となります。XCodeのインストール方法はここでは説明しませんので、各自で調べてください。

XCodeのコマンドラインツールは、インターネットに接続した状態から

    $ sudo xcode-select --install

よりインストールしてください。
Apple Developerサイトへのログインが必要になる場合もあります。

### 2.2.1. Homebrewのインストール
初めて使用する場合は、以下のサイトからインストールコマンドをコピーして、ターミナルに貼り付けて実行することでインストールが可能です。

[Homebrew](https://brew.sh/index_ja)
<img width="1229" alt="homebrew.png" src="https://qiita-image-store.s3.amazonaws.com/0/71222/7f8b5954-d431-f096-5dc9-f6947a7a86ba.png">


### 2.2.2. brewコマンドを使用してインストール

細かいバージョン違いは現在のhomebrewだけではインストールできませんが、現状の最新版のみインストールしたい場合や、2系と3系のみ切り替えたい場合はこちらが便利です。

`brew info`コマンドでインストール可能なバージョンを確認します。

    $ brew info python
    python: stable 3.7.3 (bottled), HEAD
    Interpreted, interactive, object-oriented programming language
    https://www.python.org/
    Not installed
    From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/python.rb
    ==> Dependencies
    Build: pkg-config ✔
    Required: gdbm ✔, openssl ✔, readline ✔, sqlite ✔, xz ✔
    ==> Options
    --HEAD
        Install HEAD version
    ==> Caveats
    Python has been installed as
    /usr/local/bin/python3

    Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
    `python3`, `python3-config`, `pip3` etc., respectively, have been installed into
    /usr/local/opt/python/libexec/bin

    If you need Homebrew's Python 2.7 run
    brew install python@2

    You can install Python packages with
    pip3 install <package>
    They will install into the site-package directory
    /usr/local/lib/python3.7/site-packages

`python`が3系、`python@2`が2系のコマンドとなります。
3系の最新版をインストールする場合は、次のコマンドを実行します。

    $ brew install python

また、PATHの設定も忘れないようにしましょう。

```bash:~/.bash_profile
export PATH=/usr/local/bin:$PATH
```

    $ source ~/.bash_profile
    $ which python
    /usr/local/bin/python

## 2.3. Homebrew + pyenvでのインストール方法
2系・3系の違いだけでなくさらに詳細なバージョン指定が必要な場合、pyenvなどのバージョン切り替えツールをインストールする必要があります。
また、今回は同一バージョンで複数のライブラリを使用するような仮想環境を作成できるように、virtualenvも同時にインストールするようにします。


### 2.3.1. pyenvのインストール
Homebrew がインストール済みであれば、以下のコマンドだけでpyenvのインストールが可能です。

    $ brew install pyenv

また、`~/.bash_profile`に以下を追加します。

```bash:~/.bash_profile
export PYENV_ROOT=${HOME}/.pyenv
if [ -d "${PYENV_ROOT}" ]; then
    export PATH=${PYENV_ROOT}/bin:$PATH
    eval "$(pyenv init -)"
fi
```

pyenvでインストール可能な一覧を確認します。

    $ pyenv install -l
    Available versions:
      2.1.3
      2.2.3
      2.3.7
      2.4
      2.4.1
      2.4.2
      2.4.3
      2.4.4
        .........

### 2.3.2. Pyenvによる使用バージョンのインストール

必要なバージョンを指定して、インストールします。

    $ pyenv install 3.7.1
    $ pyenv install 3.6.7

pyenvでインストールされたPythonは、`~/.pyenv`以下にインストールされています。
インストールされているバージョンを確認します。

    $ pyenv versions
    system (set by /Users/ユーザー名/.pyenv/version)
      3.7.1
      3.6.7

使用するバージョンを確定します。
デフォルトで使用したいバージョンを指定する場合は`global`、特定のディレクトリのみで使用するバージョンを指定するには、使用したいフォルダに移動したのち`local`オプションを使用します。

    $ pyenv global 3.7.1
    $ python --version
      Python 3.7.1
    $ mkdir ~/Python36
    $ cd ~/Python36
    $ pyenv local 3.6.7
    $ python --version
      Python 3.6.7

上記の例のようにすると、`~/Python36`ディレクトリ以下ではPython3.6.3、それ以外のディレクトリではPython3.7.1が`python`コマンドで呼び出されるようになります。

## 2.4. Homebrew + pyenv-virtualenvでのインストール方法

### 2.4.1. pyenv-virtualenv環境を使用した複数バージョンの管理
pyenvでインストールした複数バージョンのPythonを、使用するライブラリなども含めて別の環境を用意したい場合は、pyenvのプラグインpyenv-virtualenvを使用して管理することができます。

Homebrew がインストール済みであれば、以下のコマンドだけでpyenvとvirtualenvプラグインの同時インストールが可能です。

    $ brew install pyenv-virtualenv

また、`~/.bash_profile`に以下を追加します。

```bash:~/.bash_profile
export PYENV_ROOT=${HOME}/.pyenv
if [ -d "${PYENV_ROOT}" ]; then
    export PATH=${PYENV_ROOT}/bin:$PATH
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
fi
```
まず、使用する環境を任意の名前で作成します。

    $ pyenv virtualenv 3.7.1 study_37
    $ pyenv versions
     *system (set by /Users/ユーザー名/.pyenv/version)
      3.7.1
      3.6.7
      study_37

指定の環境を実行するディレクトリを作成、移動して設定します。

    $ mkdir ~/study_python37
    $ cd ~/study_python37
    $ pyenv local study_37
    $ python --version
      Python 3.7.1

これで、先ほど作ったPython3.7.1の環境とは別に`~/study_python37`ディレクトリ以下だけで使用できるようなPythonの環境が作成できました。