どうも、りーずです。
・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 までご教示いただけると大変助かります。