Python 3.14.0の正式リリースに合わせて、Windows版のPython処理系を大きく変化させるツールが登場した。Python Install Managerの概要とその基本的な使い方を見てみよう
Python 3.14.0の正式リリースから遅れること1日、2025年10月8日にWindows用のPython Install Managerがリリースされた。以下ではその概要とインストール方法、基本的な使い方を紹介する。
どうもHPかわさきです。
「What's new in Python 3.14」にはPython Install Managerに関する記述がないのですが、「Python Insider」のPython 3.14の紹介の中には含まれていることもあって、今回はこれを紹介することにしました。
CPythonチーム(つまり、Pythonの公式サイト)からWindows用のPythonを入手する方法が今後は大きく変わる。これまではインストーラーをダウンロード/実行することでPythonをPCにインストールしていたが、これからはPython Install Managerを使うことが推奨される。ドキュメントによれば、現行のインストーラー形式での配布はPython 3.16が最後となるようだ。
Python Install Managerは、コマンドラインベースでWindows上のPython処理系のインストールやアンインストール、アップデートなどを管理するツールだ。基本的な使い勝手は従来のpyコマンド(Python Launcher)と同様で、かつシステムワイドに使えるpythonコマンドも提供される。pyコマンドに「list」「install」「uninstall」などのサブコマンドが増えたものだと思えばよい。
実際のところ、プロジェクトごとにPythonの仮想環境を構築し、そこでpythonコマンドなどを使うのが最適なやり方ではあるが、そこにいく手前の段階で、複数のバージョンのPythonを管理するためのツールがPython Install Managerということだろう。
Python Install Managerはさまざまな方法で入手できる。
この他にもWinGetでインストールすることも可能だ(winget install 9NQ7512CXL7T)。ただし、ここでは説明は省略する。
また、既に環境にpyコマンド(Python Launcher)がインストールされている場合には、あらかじめアンインストールすることが推奨されている。これはPython Install Managerが提供するコマンドにも「pyコマンド」が含まれているので、重複しないようにするためだろう。
上記2つのPython Install Managerは同一なので、どちらを使ってインストールしても構わない。以下はMicrosoft StoreからPython Install Managerをインストールしようとしているところだ。
以下ではMicrosoft Storeからインストールしたものとして話を続ける。インストールが完了すると、コマンドプロンプトが開いて幾つかの問い合わせが行われる。
質問に答え終わると以下の3つのコマンドが使えるようになる。
pythonコマンドを実行すると、特に指定がなければ最新版のPython処理系が起動される。また、仮想環境を有効化していれば、その仮想環境に設定されているPython処理系が起動される。
pyコマンドはこれまでのpyコマンド(Python Launcher)と同様に、「py -3.14」のようにして特定のバージョンのPython処理系を起動できる。加えて、Python Install Managerに付属のpyコマンドではインストールの管理を行うサブコマンドを実行可能となっている。
ただし、「py」というコマンド名は以前から使われていたこともあり、これとは違う名前のコマンドとしてpymanagerコマンドが用意されている。pyコマンドとpymanagerコマンドは基本的には同じもので、オプションなしで実行した場合にpyコマンドは最新版のPython処理系を起動するが、pymanagerコマンドはヘルプを表示する点が異なる。スクリプトを使ってPython処理系の管理を行いたい場合などには、混乱やエラーを避けるためにもpyコマンドではなく、pymanagerコマンドを使うことが推奨されている。
「この画面キャプチャーはWindows 10のヤツじゃん!」とお怒りの皆さま、一応、ESU(拡張セキュリティ更新)の登録を済ませているのでお許しください。Windows 11への移行はM4 Mac miniのセットアップができたところで始める予定です。
以下ではpyコマンドの基本的な使い方を見ていく。本当に基本的なところは既に述べたように「py」「py -3.14」など、従来のpyコマンド(Python Launcher)と同様だ。
「py -3.14」のようなバージョン指定の仕方に加えて「py -V:<TAG>」形式で起動するバージョンを指定することも可能だ。「<TAG>」には後述する「py list」コマンドで表示される「Tag」列にある文字列を指定する。以下に「py list」コマンドの実行結果の例を示す。
上にある3つの処理系はPython Install Managerでインストールしたもので、その下にあるのはインストーラーを使ってインストールしたものだ。Python Install Managerでインストール/アンインストール/アップデートなどが可能なのは、上にあるものだけなことには注意されたい。
また、それら3つのPython処理系については、「Tag」列に「3.14[-64]」などのタグが表示されている点に注目されたい。「-V:<TAG>」オプションの「<TAG>」にはこれらを指定する。このとき、角かっこ「[]」内にはアーキテクチャを示す文字列が含まれるが、これらは省略可能だ。例えば、「py -V:3.14」と「py -V:3.14-64」は同じ意味になる(省略するとどの処理系を起動すればよいかがあいまいになるときには、タグの全てを指定する必要があるだろう)。
では、今も見た「list」などのサブコマンドについて簡単に紹介しておこう。
Python処理系の一覧にはlistサブコマンドを使用する。指定可能なオプションには以下がある。
幾つか例を示す。
<TAG>の部分には「<」「<=」「>=」「>」を指定してバージョンのフィルタリングなども行える。ただし、生のまま「py list --online >=3.10」のように書くと、「=3.10」というファイルが作成されて、そこに結果がリダイレクトされるので、ダブルクオートで囲むようにしよう。
以下に実行例を示す。
最初の実行結果はローカルにインストールされているPython処理系の一覧だ。Python Install Managerでは管理できない処理系も表示されている点に注意されたい。これらの管理は、Windowsの[設定]ツールの[アプリと機能]から行う必要がある。
次の実行結果はオンラインからインストール可能なバージョン3.12以降のPython処理系を一覧したところだ。
上のように「py list --online」コマンドでインストール可能な処理系を一覧したら、「py install」コマンドでそれらをインストールしたり、「py uninstall」コマンドでそれらをアンインストールしたりできる。オプションについては「py install /?」「py uninstall /?」で確認してほしい。
ここでは<TAG>を指定して、特定のバージョンをインストールする例を以下に示す。
「py install 3.13 3.13t 3.14 3.14t」のように複数のバージョンを指定して、ここではPython処理系をインストールしている。ただし、筆者の環境ではこれらは既にインストール済みでレジストリへ登録もされていることから警告メッセージが表示されている(ではあるが、「py -V:<TAG>」コマンドで指定したバージョンを起動可能)。Python Install Managerで全てを管理したいのであれば、従来のインストーラーを使ってインストールした処理系は[設定]アプリからアンインストールする必要があるだろう。また、その際には「py install ... --refresh」コマンドでレジストリへ登録し直す必要もある。
次に、これら4つをアンインストールしてみよう。これには「py uninstall」コマンドを使用する。インストールと同様、複数バージョンをまとめてアンインストール可能だ。
最後に処理系のアップデートをしてみる。これには「py install」コマンドの--updateオプションを使用する。
この例では「py install 3.13.7」コマンドでPython 3.13.7をインストールした後に、「py install 3.13 --update」コマンドを使用している。インストールとアップデートの確認では「py list --only-managed」コマンドを実行しているが、これはPython Install Managerが管理している処理系のみを表示するものだ。
この他にも多くのサブコマンドがあるが、それらについては機会があれば紹介することにしよう。
「現在の形式のインストーラーはPython 3.16までで終わり」というのが本当に実現できるかどうかは少し疑問が残るところですが(初心者にはインストーラーの方がカンタンでうれしいじゃないですか)、コマンドラインベースで簡単にPython処理系の管理を行えるツールが出てきたのはうれしいことですね。取りあえず、これからはこっちを使っていこうと思っています。
Copyright© Digital Advantage Corp. All Rights Reserved.