PEP 773準拠のPyManager 使い方まとめ
PyManagerについて
2025年4月25日に承認されたPEP 773により、承認から2年後の2027年4月25日を目安に、.exeインストーラとpy.exeランチャが非推奨となります。
PyManagerはPEP 773に対応した、Windows用のPythonインストールマネージャです。
GitHubはこちらです。
PyManagerのインストール
PyManagerをインストールすると、PyManagerのpyコマンドと従来のpy.exeランチャの名前が衝突するため、旧py.exeランチャのアンインストールを推奨します。
PyManagerはこちらのPre-releasesのPython install managerを開き、wingetコマンドでインストールできます。
例として、本記事執筆時の最新版25.0b15はwinget 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つです。
先程のグローバルオプション-hやpymanager 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