新しいバージョンのPythonをインストールする必要が出たけど、古いバージョンも残しておかなきゃいけないことってありますよね?
それか、あるモジュールをあるバージョンで止めておきたいこととかもありますよね?
そこで、仮想環境を使って、複数のバージョンのPythonやモジュールを使う方法をお伝えします。
1台のPCに複数のVersionのPythonをインストールする
まずは、Windowsに複数のバージョンのPythonをインストールします。
私のPCの環境で説明します。
私のPCには、すでにPython 3.9 がインストールされている状態です。
例として、Python 3.7を追加でインストールしてみます。
複数のVersionのPythonをダウンロードする
ブラウザで「python releases for windows」と検索する、ダウンロードサイトにたどり着けます。
このようなページです。
このページで欲しいバージョンのPythonをダウンロードします。
インストーラー付きのPythonを選ぼう
楽をしたいので、installerがあるバージョンを選択します。
installerなくてもインストールできる方は最新をインストールしてください。
例えば、Python 3.7.13をクリックしてみると、Python 3.7.13にはinstallerが存在しません。
そこで、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.9をダウンロードしてインストールします。
https://www.python.org/downloads/release/python-379/
Windows x86-64 executable installerを選ぶとpython-3.7.9-amd64.exeをダウンロードできます。
それをダブルクリックしたらインストール完了です。
インストールした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