WindowsにPython2.7とPython3.7が共存できるようにインストールする

# はじめに
Pythonは2.7系と3系の２つのバージョンが並行して開発されており、どちらもよく使われています。そのため、両方をインストールし、共存できるようにする方法をまとめます。

今回は2.7系を2.7.15、3系を3.7.0とします。（2018/9/2時点での最新版）
ただ、仮に3系が3.6とか3.5でも手順はほとんど同じになると思います。

今回はWindows10 64bitにインストールしますが、Windows7とか32bitとかでも手順は同じだと思います。

また、Macの場合はこちらが参考になりました。（素晴らしい記事をありがとうございます。）
[Pythonインストール（Mac編）](https://qiita.com/ms-rock/items/6e4498a5963f3d9c4a67)


### 2019/10/25 追記
本記事はPython公式のインストーラーを使ってPython2.7とPython3.7をWindowsにインストールする手順です。

もし、インストーラーを使わずに、コマンドだけでインストールしたい場合は、Chocolateyを使う方法がありますので、以下に新しい記事を作成しました。コマンドに慣れていれば、こちらの方が手順が少なくなり、オススメです。
[WindowsにPython2.7とPython3.8が共存できるようにChocolateyでインストールする](https://qiita.com/segur/items/953abf91071632fdae4c)



# Python3.7のインストーラーのダウンロード
以下の公式サイトにアクセスします。
[Download the latest version for Windows](https://www.python.org/downloads/)

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/3bcc55ba-3fb3-b80b-8a99-5943d171a9e7.png">

デカデカとある**Download Python 3.7.0**というボタンが目につきますが、これはクリックしないでください。というのも、これはWindows 32bit用のインストーラーだからです。64bit用ではありません。少しスクロールしてください。

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/5ac2ead3-cfd5-f3a8-9963-1fa3587bf9f0.png">

少しスクロールすると、こんな感じの一覧表がありますので、その中から、**Python 3.7.0**（3系の最新版）をクリックしてください。すると、ページ遷移します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/8dc02ffa-574c-06f9-53e0-7db161491ad8.png">

再びスクロールすると、**Files**という一覧表がありますので、その中から、**Windows x86-64 executable installer**をクリックしてください。64bit用のインストーラー**python-3.7.0-amd64.exe**がダウンロードできます。
32bitのWindowsの場合は、おそらく**Windows x86 executable installer**をクリックすればよいと思います。

ダウンロードが終わっても、まだこのファイルは実行しないでください。2.7系のインストールを先にする必要があります。



# Python2.7のインストーラーのダウンロード

先ほどのページに戻ります。
[Download the latest version for Windows](https://www.python.org/downloads/)

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/77f0e645-f45e-f993-5589-901f2a8b6d9e.png">

今度は**Python 2.7.15**（2.7系の最新版）をクリックしてください。すると、ページ遷移します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/1cee21f7-32ca-1631-68ac-05c1cabd6746.png">

64bitのWindowsの場合、**Files**の表から**Windows x86-64 MSI installer**をクリックしてください。2.7系のインストーラーがダウンロードされます。
32bitのWindowsの場合は、おそらく**Windows x86 MSI installer**をクリックすればよいと思います。

# Python2.7のインストール
ダウンロードした**python-2.7.15.amd64.msi**を実行します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/be8d86d3-ccd9-54c4-39dc-c655e19ca5bf.png" width=400>

画面の指示に従い、デフォルトの設定で進めていけばよいと思います。

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/e8d3ef01-2be9-0398-1fff-b1f0f489637e.png" width=400>

インストール先は `C:\Python27` がおすすめです。

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/92293210-ab55-adfc-6ffc-e20cd60e14ba.png" width=400>

ここもデフォルトでよいです。pipはインストールする設定にしてください。
**Add python.exe to Path**はバツのままにしておいてください。（Python3と共存させるため）

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/9dfec84b-c259-825c-dc48-c624101f4d7f.png" width=400>

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/8f7f6b27-2a18-d82f-563b-794fed568a07.png" width=400>

こんな画面になった**Finish**でウィンドウを閉じます。



# Python3.7のインストール
次にPython3系をインストールします。**必ず3系よりも先に2.7系をインストールするようにしてください。**

ダウンロードした**python-3.7.0-amd64.exe**を実行します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/6be3f0ff-8e06-ea46-5d38-cfd034172380.png" width=400>


**Customize installation**をクリックします。**Install Now**をクリックすると、インストール先がユーザーディレクトリになってしまい、今後扱いずらくなってしまいます。

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/85773ef9-ef48-7baf-17c9-a289709c67fd.png" width=400>

ここもデフォルトでよいです。pipにチェックを入れた状態で次に進めます。

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/130c99a0-b4da-c32a-ba65-df4dde32df99.png" width=400>

**Install for all users**にチェックを入れてください。

インストール先が、 `C:\Program Files` 配下になりますが、このままだと、今後扱いずらいので、変更します。今回はPython3.7.0なので、インストール先は `C:\Python37` にしました。ご自身がインストールするバージョン番号に合わせて、フォルダ名は変更してください。

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/96043750-1701-988e-61fc-2436ccb48e74.png" width=400>

**Install**をクリックすると、インストールが始まります。

<img src="https://qiita-image-store.s3.amazonaws.com/0/221845/c9cb1ad4-944f-836a-9c82-901d52d71e75.png" width=400>

この画面が出れば完了です。**Close**をクリックして、ウィンドウを閉じます。
 


# 環境変数の設定
システム環境変数のPathに以下の3つを追加します。

```
C:\Python37
C:\Python37\Scripts
C:\Python27\Scripts
```

この順番は非常に重要です。2.7が後に来るようにしてください。

システム環境変数に`PY_PYTHONPATH`を追加し、値を`3`にします。

ネットワークがプロキシ配下の場合は、環境変数にHTTP_PROXYとHTTPS_PROXYの追加も必要です。どちらも値は以下のようにします。

```
http://＜ユーザー名＞:＜パスワード＞@＜ホスト名＞:＜ポート＞
```
プロキシに認証がない場合は、＜ユーザー名＞と＜パスワード＞は省略可能です。

# Pythonの切換確認
2.7系と3系の切り替えができるか確認します。コマンドプロンプトを起動し、以下のコマンドを打ちます。

```bash
rem Python 3系が起動することを確認
py

rem Python を終了
exit()

rem Python 2.7系が起動することを確認
py -2

rem Python を終了
exit()
```

Pythonの2.7系と3系が共存していることが確認できました。



# pipの確認
pipがインストールされているか確認します。pipというのは、Pythonのパッケージ管理ソフトです。外部パッケージのインストール等で利用します。

コマンドプロンプトで以下を実行してみてください。

```bash
rem Python 3系が起動することを確認
pip --version

rem Python 2.7系が起動することを確認
pip2 --version

rem Python 3系が起動することを確認
pip3 --version
```

これで応答にバージョン番号が表示されれば、pipは正常にインストールできています。
次に、コマンドプロンプトで`pip list`を実行してみてください。

```bash
Package    Version
---------- -------
pip        10.0.1
setuptools 39.0.1
You are using pip version 10.0.1, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
```

警告文が表示されています。どうやらpipのバージョンが古いので、バージョンアップを勧められているようです。表示されているコマンドを実行してみます。

```bash
python -m pip install --upgrade pip
```

新しいpipのインストールが始まります。

```bash
Collecting pip
  Downloading https://files.pythonhosted.org/packages/5f/25/e52d3f31441505a5f3af41213346e5b6c221c9e086a166f3703d2ddaf940/pip-18.0-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 2.0MB/s
Installing collected packages: pip
  Found existing installation: pip 10.0.1
    Uninstalling pip-10.0.1:
      Successfully uninstalled pip-10.0.1
Successfully installed pip-18.0
```

こんな風になればインストール終了です。`pip list`を実行しても、警告が表示されなくなりました。



# pip設定ファイルの作成
今後のために、**pip.ini**を作成します。pip.iniはpipの設定ファイルです。

まず、以下のパスにpip.iniというファイルがあるか確認します。

```
C:\ProgramData\pip\pip.ini
%APPDATA%\pip\pip.ini
%HOMEPATH%\pip\pip.ini
```

どこにもファイルがなければ、以下に新規作成します。

```
C:\ProgramData\pip\pip.ini
```

今後、pipの設定を変更したい場合は、このpip.iniを編集していきます。



# プロキシの設定

プロキシ配下の場合は、プロキシの設定をphp.iniに追加します。

```pip.ini
[global]
# プロキシ設定
proxy = http://＜ユーザー名＞:＜パスワード＞@＜ホスト名＞:＜ポート＞
```



# さいごに
以上で終了です。予想以上に手順が多くて大変でしたが、Pythonの2.7系と3系を共存させることができました。