16
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonランチャーからPython Install Manager(PIM)に移行してみた(Windows)

Last updated at Posted at 2025-12-03

はじめに

今年の10月に入り、Python 3.14がリリースされたのですが、その際にPythonランチャーが将来(Python 3.16以降)使えなくなる予定で、代わりにPython Install Manager(PIM)を使用することが推奨されるというニュースも目にしました。

そこで今回は、Pythonランチャー環境からPIM環境へ移行してみることにしました。
Pythonランチャーについて気になる方は、以下の記事でPythonランチャーを使って複数のPythonを共存させてみた内容の記事を投稿しています。よかったら読んでみてください。

対象読者

Pythonランチャーを使っていてどうやって移行すれば良いのか気になっている方、これから複数のバージョンのPythonを使ってみたいと思っている方
※Pythonランチャー、PIMはあくまでもWindows向けであるということをご了承ください。

1. Python Install Manager(PIM)とは?

PIMはWindows向けの公式Python管理ツールで、以下のような特徴があります。

  • Pythonランタイムのインストール・更新・削除を一元化
  • py -3.14のようなバージョン指定実行は引き続き可能
  • Microsoft Storeから導入できる
  • Pythonランチャーに代わり、今後のWindows環境でのPythonの推奨管理方式になる見込み

つまり、Pythonランチャーと同じように使いつつ、
さらにわかりやすく便利になった管理ツールというイメージです。

2. 移行前の環境

まずは移行前の状態を確認しておきます。この流れはPythonランチャー導入時と同じ構成です。

PS> py --version
Python 3.13.2

PS> py -0
 -V:3.13 *        Python 3.13 (64-bit)
 -V:3.12          Python 3.12 (64-bit)

PS> python --version
Python 3.12.0
  • 3.12 と 3.13 が共存
  • py ランチャーで切り替え
  • python.exe は 3.12

この環境をPIMへ移行していきます。

3. PIM をインストールする

Microsoft Storeで「Python」と検索すると、
「Python Install Manager」として提供されているものが表示されます。

インストール後の確認:

PS> pymanager --version
Python installation manager 25.0

4. 現在の Python を PIM がどのように認識しているか確認

PythonランチャーとPythonランチャーを使用してインストールしたPythonがある状態でPIMをインストールしてみました。ただし、PIMからはまだPythonをインストールしていません。この状態でPIMでPythonが入っていると判断されるか試してみます。

PS> pymanager list

結果:

-- No runtimes. Use 'py install <version>' to install one. --

* These runtimes were found, but cannot be updated or uninstalled. *
3.13  *  Python 3.13 (64-bit)
3.12     Python 3.12 (64-bit)

PIMから見ると、

  • 既存のPythonは「外部のもの」
  • 削除も更新も不可
  • PIM管理にするには再インストールが必要

という扱いになっていることがわかります。

5. Python 3.14をPIM経由でインストール

PIMを通してPythonをインストールしてみます。
まずは最新バージョンである3.14を入れてみました。

PS> pymanager install 3.14

成功後:

3.14[-64]  *  Python 3.14.0

この時点でデフォルトのPythonが3.14に切り替わったことがわかります。

6. 既存の3.12/3.13をPIM用に入れ直す

Pythonランチャー、Pythonランチャー経由でインストールしたPythonをアンインストールしたあと、
あらためてPIM経由で追加します。

pymanager install 3.13
pymanager install 3.12

結果:

3.14[-64]  *  Python 3.14.0
3.13[-64]     Python 3.13.9
3.12[-64]     Python 3.12.10

無事3.12~3.14のバージョンのインストールができました!

7. Python 3.13 → 3.14 の挙動差を検証する

今回はPython3.13と3.14のバージョンによって変わる挙動を実際に動かして確認します。

A. finally内のreturnにSyntaxWarningが追加されていること

3.13

py -3.13 -W default -c "def f():
  try:
    return 1
  finally:
    return 2
print(f())"
2

3.14

py -3.14 -W default -c "def f():
  try:
    return 1
  finally:
    return 2
print(f())"

<string>:5: SyntaxWarning: 'return' in a 'finally' block
2

B. 予約語typoのエラーメッセージ改善

3.13

py -3.13 -c "whille True:
  pass"

  File "<string>", line 1
    whille True:
           ^^^^
SyntaxError: invalid syntax

3.14

py -3.14 -c "whille True:
  pass"

  File "<string>", line 1
    whille True:
    ^^^^^^
SyntaxError: invalid syntax. Did you mean 'while'?

py -3.13 -c "variety='Stilton'; template = t'Try some {variety} cheese!'"

SyntaxError: invalid syntax

C. t-string(3.14)

3.13

py -3.13 -c "variety='Stilton'; template = t'Try some {variety} cheese!'"

SyntaxError: invalid syntax

3.14

py -3.14 -c "variety='Stilton'; template = t'Try some {variety} cheese!'; print(type(template), list(template))"

<class 'string.templatelib.Template'> ['Try some ', Interpolation('Stilton', 'variety', None, ''), ' cheese!']

8. 各Pythonで異なるライブラリバージョンを共存させられるか検証

続いて、PIMでもPythonランチャーと同じようにPythonバージョンごとに独立したライブラリ環境が使えるのか試してみたいと思います。

実際に requests を使って検証しました。

Step1: pip のバージョン確認(すべて独立)

py -3.12 -m pip --version

pip 25.0.1 from C:\Users\yuuuka\AppData\Local\Python\pythoncore-3.12-64\Lib\site-packages\pip (python 3.12)

py -3.13 -m pip --version

pip 25.2 from C:\Users\yuuuka\AppData\Local\Python\pythoncore-3.13-64\Lib\site-packages\pip (python 3.13)
py -3.14 -m pip --version

pip 25.2 from C:\Users\yuuuka\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pip (python 3.14)

→ すべて別ディレクトリにインストールされていることが確認できました。

Step2: requests の利用可能バージョンを確認

py -3.x -m pip index versions requestsコマンドを実行してrequestsの利用可能なバージョンを確認しました。どのバージョンから見ても一覧は同じだったので次に進みます。

Step3: バージョンごとに違う requests をインストール

py -3.12 -m pip install "requests==2.28.2"
py -3.13 -m pip install "requests==2.31.0"
py -3.14 -m pip install requests  # 最新

Step4: 実際のバージョンを取得

py -3.12 -c "import requests, sys; print(sys.version); print('requests:', requests.version)"

3.12.10 (tags/v3.12.10:0cc8128, Apr  8 2025, 12:21:36) [MSC v.1943 64 bit (AMD64)]

requests: 2.28.2

py -3.13 -c "import requests, sys; print(sys.version); print('requests:', requests.version)"

3.13.9 (tags/v3.13.9:8183fa5, Oct 14 2025, 14:09:13) [MSC v.1944 64 bit (AMD64)]

requests: 2.31.0

py -3.14 -c "import requests, sys; print(sys.version); print('requests:', requests.version)"

3.14.0 (tags/v3.14.0:ebf955d, Oct  7 2025, 10:15:03) [MSC v.1944 64 bit (AMD64)]

requests: 2.32.5

期待どおり、完全に独立して共存させることができました!

9. Python ランチャーと PIM の比較まとめ

項目 Pythonランチャー PIM
バージョン切替 py -3.x 同じ
ランタイム追加 手動 pymanager install
ランタイム削除 OS 依存 pymanager uninstall
将来性 廃止方向 推奨へ移行
ライブラリ管理 独立 独立(維持)

10. まとめ

今回、実際にPythonランチャーからPIMに移行しながら検証してみて、感じたことをまとめます。

  • PIM は Windows 公式の新しい標準 として使う価値が高い
  • Python ランチャーの使い勝手を維持しつつ、さらに管理しやすくなった
  • ランタイム管理が簡単なので、複数バージョン検証がとても楽
  • ライブラリ環境も Python ごとにしっかり独立しており安心
  • 3.13 → 3.14 の仕様差もスムーズに検証できた

しばらくはPythonランチャーも使えますが、
「今後を見据えてWindows環境のPythonの管理を整えたい」という方は、
早めにPIMを導入しておくと良いと思います。

おわりに

今回PythonランチャーからPIMに移行してみた感想として、意外と移行が簡単で、移行後の違和感もほとんど無かったというのがありました。
PIMの細かい挙動については今後も使いつつ記事の更新もしくは追加をしていければと思います。
以上、お読みいただきありがとうございました!

参考

16
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?