Windows10でコマンドプロンプトのPythonコマンドのバージョンを切り変える方法(3.6と3.8を切り替え等)。環境変数の2つの値を上に持っていこう。上にある環境変数のバージョンが優先されます。

どうも、りーずです。

・Python3.6を機械学習用に、
・Python3.8はDjango用に、

など、複数のPythonのバージョンを切り替えたいときがありました。

しかし、コマンドプロンプトにおけるPythonコマンドの複数バージョンの切り替え方法の良い情報がなかなか検索で出てこない。

ということで色々自分で試した結果、切り替える方法を見つけたのでシェアします。

結論から言うと、
環境変数の設定で

C:¥Python¥Python385¥Scripts¥
C:¥Python¥Python385¥

というように、設定したいPythonのバージョン(この場合はPython3.85)の環境変数を一番上に持っていくと、
コマンドプロンプトでPythonコマンドを発動するときに、そのPythonのバージョンが優先されます。

Pythonの環境変数は下記のように2つ必要です。
[インストール場所]¥Scripts¥
[インストール場所]¥

環境変数の設定には「上へ」「下へ」などのボタンがあるので、意外と簡単に切り替えが可能です。

使わないPythonのバージョンは下にあれば読み込まれないので大丈夫です。

以下で詳細に解説。


Pythonはインストーラーでインストールします。
パスはどれも通す設定にします。

ちなみにPythonのダウンロード先は

この動画を参考に、
Python3.67の場合は
C:¥Python¥Python367

Python3.85の場合は
C:¥Python¥Python385

のようにして場所を指定しました。
32bit版の場合はうしろに -32 と付けると分かりやすいと思います。

例:
C:¥Python¥Python385-32

なぜこれが良いかというと、virtualenvを使うときに、

この動画のように、たとえば
C:¥Program Files¥Python367
にPythonをインストールしていたとして、仮想環境を作ろうと

virtualenv -p C:\Program Files\Python367\python.exe py36_env

のようにすると、「C:\Program Filesの場所が読み込めない」というようなエラーが出たからです。
(この場合はPython3.67をインストールした場所を参照して、
仮想環境を「py36_env」という名前で作るコマンドです)

このとき僕は、『C:\Program Files』にPythonをインストールしていました。

「Program FilesのmとFの間にスペースがあったからエラーが出たのかな?」と思いました。
いずれにせよ、パスにスペースが含まれているのは好ましくないです。

(通常のインストールなら C:¥Program Files はデフォルトの場所ではないので大丈夫だと思います。この C:¥Program Files は過去に僕が設定した場所です。)

なので、
C:¥Python

というふうに、文字が少なく済み、エラーが出なさそうな場所にPythonのバージョン番号を割り当てて、それぞれのPythonをインストールすることにしました。

例えばPython3.67なら

C:¥Python¥Python367

のような具合です。

本題:環境設定の設定をする

さて、肝心の環境変数の話ですが、
Windows10のタスクバー右下にある >> という小さいマークをクリックし、
「コントロールパネル」から「システム」
システムの左上あたりにある「システムの詳細設定」をクリックし、

この画面を出します。

この画面の「環境変数」をクリックして、編集することが可能です。

「すべてのユーザーにPythonをインストール」設定にしている場合は
システム環境変数の「Path」を変更します。

以下のような画面になります。

ここでは上の画面で
Python3.85の環境変数が2つ、
Python3.67の環境変数が2つあるのが分かるかと思います。

コマンドプロンプトで使いたいPythonのバージョンを3.85にしたい場合は、
上の画面のように、Python3.85の環境設定2つ

[インストール場所]¥Scripts¥
[インストール場所]¥

の2つの環境変数を一番上(他のPythonの環境変数より上)に持って行きましょう。

そうしたら「OK」を押して、システムのプロパティも「OK」を押して、一度すべてのウィンドウを閉じましょう。

さらに、コマンドプロンプトを立ち上げているときは一度閉じて、また立ち上げます。

そうして、

python --version
と打つと、先程設定したPythonのバージョンになっていると思いますのでお試し下さい。

ちなみに

py -3.6
などpyコマンドによってPythonのバージョンを切り替えることは可能ですが、
今回はpythonコマンドに割り振られるPythonのバージョンの切り替えを説明したものになります。

以上、何かの参考になれば幸いです。


※何か間違っている事などございましたら
Twitter @so_meru までご教示いただけると大変助かります。