1台のPCで複数のVersionのPythonを使う

新しいバージョンのPythonをインストールする必要が出たけど、古いバージョンも残しておかなきゃいけないことってありますよね?

それか、あるモジュールをあるバージョンで止めておきたいこととかもありますよね?

そこで、仮想環境を使って、複数のバージョンのPythonやモジュールを使う方法をお伝えします。

1台のPCに複数のVersionのPythonをインストールする

まずは、Windowsに複数のバージョンのPythonをインストールします。

私のPCの環境で説明します。
私のPCには、すでにPython 3.9 がインストールされている状態です。

例として、Python 3.7を追加でインストールしてみます。

複数のVersionのPythonをダウンロードする

ブラウザで「python releases for windows」と検索する、ダウンロードサイトにたどり着けます。

このようなページです。
このページで欲しいバージョンのPythonをダウンロードします。

python releases for windows

インストーラー付きのPythonを選ぼう

楽をしたいので、installerがあるバージョンを選択します。
installerなくてもインストールできる方は最新をインストールしてください。

例えば、Python 3.7.13をクリックしてみると、Python 3.7.13にはinstallerが存在しません。

python 3.7.13

そこで、Python 3.7.13 のダウンロードサイトを見てみます。
https://www.python.org/downloads/release/python-3713/
「The final bugfix release with binary installers for 3.7 was 3.7.9. (インストーラー付きの最新バグ修正リリースは 3.7.9)」と書かれています。

python 3.7.13

ということで、Python 3.7.9をダウンロードしてインストールします。
https://www.python.org/downloads/release/python-379/
Windows x86-64 executable installerを選ぶとpython-3.7.9-amd64.exeをダウンロードできます。
それをダブルクリックしたらインストール完了です。

Python 3.7.9

インストールしたPythonのVersionを確認する

Pythonのバージョンを確認しましょう。
すでにインストールしていたPython 3.9.9と、新たにインストールしたPython 3.7.9があることが確認できました。

$ python -V
Python 3.9.9

$ py -V
Python 3.9.9

$ py -3.9 -V
Python 3.9.9

$ py -3.7 -V
Python 3.7.9

pythonコマンドpyコマンドの違いは、下記サイトに説明があります。

PythonのVersionごとに仮想環境を作る

venvで仮想環境を作る

では、Python 3.7の仮想環境を作成しましょう。

仮想環境の作成コマンドは「python -m venv <仮想環境のパス>」です。
Pythonのバージョンを指定する場合は「py -3.7 -m venv <仮想環境のパス>」となります。

1台のPCに複数の仮想環境を作ることができるので、仮想環境の名前にはPythonのバージョンがわかるようになっている方がいいです。
例えば、Python 3.7用の仮想環境の名前は venv_py37 とかにしましょう。

# Python 3.7.9 の仮想環境を作成する。
$ py -3.7 -m venv .\venv_py37

# 仮想環境を有効化すると、仮想環境上にコマンドラインが移動する。
$ .\venv_py37\Scripts\activate

# 仮想環境の Python の Version を確認する。
(venv_py37) $ python -V
Python 3.7.9

# 作業が終われば、仮想環境を無効化する。
(venv_py37) $ deactivate

Python 3.9.9 の仮想環境を作成する場合は、py -3.9 -m venv .\venv_py39 です。

それぞれの仮想環境にモジュールをインストールする

Pythonのバージョンごとの仮想環境ができました。

残りは、各仮想環境上でPythonモジュールをインストールするだけです。
Pythonモジュールのインストールは仮想環境ごとになります。
そのため、モジュールのVersion違いの環境も構築できます。

まずは、pipをインストールしましょう。(すでにインストール済のこともあります。)
そして、モジュールもインストールしましょう。

(venv_py37) pip install pip