[Python] Windows環境で複数バージョンを管理する方法

Python

Pythonを扱っていると、利用したいパッケージ(機能)によって、
そのパッケージを利用するために、Pythonバージョンを選択しないといけない場合があります。
例えば、利用したいパッケージが最新のPythonバージョンに対応していない場合などは、
あえてPythonバージョンを下げる必要なども出てきます。

本記事は、Windows環境にて複数のPythonバージョンを管理する方法を2種類紹介します。

  1. PATH環境変数によってPythonバージョンを切り替える
  2. pyコマンドによってPythonバージョンを切り替える

ここでは以下を前提とした環境に、新たにPython 3.10をインストールする流れで説明します。

  • Windows 11 (64bit)
  • Python 3.13 をインストール済み
  • 過去に3.12 → 3.11 → 3.13という流れで、複数バージョンをインストール済み

Python 3.10を追加インストール

まずはPython 3.10をインストールしていきます。

Welcome to Python.org
The official home of the Python Programming Language

PythonサイトのDownloadsメニューからWindowsを選択します。

ここではWindows 64-bitのinstallerが利用できる3.10.11をインストールします。
Windows installer (64-bit)のリンクをクリックすると、
ダウンロードフォルダに python-3.10.11-amd64.exe ファイルが保存されますので、ダブルクリックします。

インストーラが起動しますので、「Add python.exe to PATH」にチェックを入れて、
Install Nowを選択します。

インストールが開始され、無事に完了したら、Closeを選択します。
ここまでで、バージョン3.10のインストールは完了です。

Pythonが複数バージョン存在していることになりますが、
インストール時に3.10のPATHを追加しているため、
ターミナル(PowerShell)からpythonを実行すると、以下のとおりバージョンが3.10になっています。

Windowsスタートから「すべて」を選択して「た」行にある「ターミナルを選択します」

PowerShellが起動しますので、pythonを実行してみると、バージョンが3.10.11になっていることが分かります。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows

PS C:\Users\xxxxxx> python
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 

以下から複数のPythonバージョンを管理する方法を2種類紹介していきます。

方法#1. PATH環境変数によってPythonバージョンを切り替える

まず、pythonコマンドがどのフォルダのpython.exeを実行しているかを確認します。
WindowsのPowerShell環境では、gcmコマンドで確認することができます。
(コマンドプロンプト環境では、whereコマンドで確認することができます)

gcm pythonだけでは出力内容が分かりずらいため、fl(Format-List)で出力内容を整形すると分かりやすいです。
Pathの情報から、どのフォルダのpython.exeを実行しているかが分かります。

PS C:\Users\xxxxxxxx> gcm python | fl

Name            : python.exe
CommandType     : Application
Definition      : C:\Users\xxxxxxxx\AppData\Local\Programs\Python\Python310\python.exe
Extension       : .exe
Path            : C:\Users\xxxxxxxx\AppData\Local\Programs\Python\Python310\python.exe
  :

PATH環境変数の確認

Python 3.10をインストールした直後のPATH環境変数は以下の流れで確認可能です。

まず、Windowsスタートメニューから「設定」を選択します。

「システム」から「バージョン情報」を選択します。

関連リンクから「システムの詳細設定」を選択します。

システムのプロパティが表示されますので、「環境変数(N)…」を選択します。

環境変数一覧が表示されますので、Pathを選択して「編集(E)…」を選択します。

編集画面からPATHの設定内容を確認することができます。
PATHに設定された、上位にあるフォルダからコマンドを探していくことになりますので、
この場合はPython310(3.10のインストールフォルダ)が他のバージョンのPythonよりも上位にあることから、
pythonコマンドを実行すると、バージョン3.10のpython.exeが実行されることになります。

PATH環境変数の変更

pythonコマンドでPython 3.13を実行させたい場合は、PATHを書き換えることで対応できます。
具体的には、PATHの編集画面でPython313フォルダを上位に設定します。

まずはPython313\で終わる行を選択して、一番上にくるまで「上へ(U)」をクリックします。
同様にPython313\Scripts\で終わる行を選択して、一番上にくるまで「上へ(U)」をクリックします。

Python313を含む行が上位に設定されたことを確認して「OK」を選択します。

環境変数画面に戻りますので、こちらも「OK」を選択します。

システムのプロパティ画面に戻りますので、こちらも「OK」を選択します。

再度ターミナル(PowerShell)を起動し直してから、pythonを実行するとバージョンが3.13に変化していることが分かります。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows

PS C:\Users\xxxxxx> python
Python 3.13.0 (tags/v3.13.0:60403a5, Oct  7 2024, 09:38:07) [MSC v.1941 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 

方法#2. pyコマンドによってPythonバージョンを切り替える

Windows版にはpyコマンド(py.exe)というPythonのランチャーが付属しています。
PATH環境変数によってPythonバージョンを切り替えることもできますが、
もっと手軽にPythonバージョンを変更したい場合は、pyコマンドの利用もおすすめします。

バージョンの確認

複数バージョンのPythonがインストールされている環境では、
最新のバージョンがデフォルトバージョンとして設定されています。
デフォルトバージョンを確認する場合は、pyコマンドを実際に実行してみるのが手っ取り早いです。

こちらの実行結果からバージョンが3.13.0となっていますことが分かります。

PS C:\Users\xxxxxxxx> py
Python 3.13.0 (tags/v3.13.0:60403a5, Oct  7 2024, 09:38:07) [MSC v.1941 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

-0 または –list オプションを指定することで、
現在利用できるバージョンとデフォルトバージョンを確認することができます。
本記事の環境では4つの異なるバージョンがインストールされていて、
*の付いているバージョンが、デフォルトバージョンを示しています。

PS C:\Users\xxxxxx> py --list
 -V:3.13 *        Python 3.13 (64-bit)
 -V:3.12          Python 3.12 (64-bit)
 -V:3.11          Python 3.11 (64-bit)
 -V:3.10          Python 3.10 (64-bit)

バージョンを切り替えて実行

pyコマンドでは引数にバージョンを指定するだけで、特定バージョンのpythonを起動することができます。
例えば、バージョン3.10のpythonを実行したい場合は py -3.10 のように実行します。

PS C:\Users\xxxxxx> py -3.10
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

特定バージョンでpythonファイルを実行したい場合も同様に実行可能です。
pythonコマンドを py または py -3.10 といったコマンドに置き換えているイメージです。

> py -3.10 helloworld.py

pipによるパッケージインストール

pipを利用する場合、通常は方法#1にあるようなPATH環境変数に従ったpipコマンドが使用されますので、
意図したバージョンのpipを利用できない場合があります。

こちらもpyコマンドを介してpipを利用することができます。

バージョン3.13に python_pkg パッケージをインストールする場合
py -m pip install python_pkg
バージョン3.10に python_pkg パッケージをインストールする場合
py -3.10 -m pip install python_pkg

まとめ

本記事は複数バージョンのPythonをインストールする環境において、バージョンを管理する2つの方法をまとめました。
利用したいパッケージによって、Pythonバージョンの制約を受けることが度々ありますので、
いずれかの方法で対応はできるかと思います。

コメント

タイトルとURLをコピーしました