🐍

PEP 773準拠のPyManager 使い方まとめ

に公開

PyManagerについて

2025年4月25日に承認されたPEP 773により、承認から2年後の2027年4月25日を目安に、.exeインストーラとpy.exeランチャが非推奨となります。
PyManagerPEP 773に対応した、Windows用のPythonインストールマネージャです。
GitHubはこちらです。

PyManagerのインストール

PyManagerをインストールすると、PyManagerpyコマンドと従来のpy.exeランチャの名前が衝突するため、旧py.exeランチャのアンインストールを推奨します。
PyManagerこちらPre-releasesPython install managerを開き、wingetコマンドでインストールできます。
例として、本記事執筆時の最新版25.0b15winget install 9NQ7512CXL7Tでインストールできます。

PyManagerのインストール確認

where.exeを利用し、

PS > where.exe pymanager
C:\Users\xxxxx\AppData\Local\Microsoft\WindowsApps\pymanager.exe
PS > where.exe py
C:\Users\xxxxx\AppData\Local\Microsoft\WindowsApps\py.exe

と表示されたらインストールが完了しています。
また、

PS > py help
PS > pymanager

help表示でもインストールの確認ができます。

pyコマンドとpymanagerコマンド

pyコマンド

pyコマンドは、ランチャー兼マネージャーです。
pyだけ入力するとランチャーとして、PyManagerが既定のPythonを起動します。

PS > py
>>>

また、pyをマネージャーとして、py exec -V:<ver>, py help, py list, py install, py uninstall等のサブコマンドを使えます。
サブコマンドとオプションの詳細は、以下にまとめます。
例:

PS > py list
Tag           Name           Managed By  Version  Alias
3.13[-64]  *  Python 3.13.7  PythonCore  3.13.7   python3[-64].exe, python3.13[-64].exe

pymanagerコマンド(全て小文字)

pymanagerコマンドは、pyランチャーと名前の衝突回避用の管理コマンドです。
pymanagerコマンドもpyと同じく以下のサブコマンドとオプションが使えます。
例:

PS > pymanager list
Tag           Name           Managed By  Version  Alias
3.13[-64]  *  Python 3.13.7  PythonCore  3.13.7   python3[-64].exe, python3.13[-64].exe

サブコマンドとオプション

グローバルオプション

どのコマンドにも共通するオプションです。必ずサブコマンドの後ろに付けます。
主なグローバルオプションを紹介します

オプション 動作 用途 JSONファイルでの記法
-v, -vv 詳細なログを出力 デバッグ, ロギング "log_level": 20, "log_level": 10
-q, -qq ログ出力を抑制 スクリプトで静かに実行 "log_level": 30, "log_level": 40
-y 確認を自動でYes 自動化等 "confirm": false
-h, -?, -help そのコマンドのヘルプを表示 使い方やオプション一覧の確認
--config=<PATH> JSONファイルで設定を上書き グローバルオプションをJSONに保存

--config=<PATH>について、例えば

{
  "log_level": 40,
  "confirm": false
}

このJSONはログ出力を最大限抑制し、コマンド実行の確認を行わないJSONです。
例として、pymanager uninstall--configを利用すると、実行確認のY/nが行われていないことが分かります。

PS > pymanager uninstall 3.13 --config="C:\temp\pymanager.config.json"
Removed Python 3.13.7

PS > pymanager uninstall 3.13
Uninstall Python 3.13.7? [Y/n] Y
Removed Python 3.13.7

サブコマンドと主なオプション

サブコマンドは、exec, help, install, list, uninstallの5つです。
先程のグローバルオプション-hpymanager help [<CMD>]で、サブコマンドごとの詳細なオプションを見ることができます。
5つのサブコマンドのオプションの内、主なオプションのみを紹介します。

サブコマンド 動作 主なオプション例 用途 サンプル
exec 指定バージョンのPythonを起動(必要なら自動インストール) -V:<TAG>, -3<VERSION> 特定バージョンでコード実行 pymanager exec -V:3.13 -m pip --version, pymanager exec -3.13
help 全体または個別コマンドのヘルプ表示 [<CMD>] コマンドのオプション確認 pymanager help list, pymanager help
install Pythonのインストールや更新 --update, --download インストール, 更新, 事前ダウンロード等 pymanager install 3.13 --update, pymanager install --download "C:\temp\pymanager" 3.13 3.12
list 入手可能、インストール済みバージョンの羅列 --online, --only-managed 各バージョンの羅列 pymanager list --online 3.13, pymanager list --only-managed
uninstall Pythonの削除 --purge Pythonのアンインストール pymanager uninstall 3.12, pymanager uninstall --purge

まとめ

PyManagerはPythonのバージョン管理を行う優秀なツールです。
約2年後、Pythonの管理は.exeインストーラではなくPyManagerに集約されるので、PyManagerの利用もご検討ください。
PyManagerは今後も更新されるので、公式情報を定期的に確認し利用しましょう。

Discussion