Pythonを複数バージョンインストールしているときにwingetでアップデートしてみる
先日WindowsでPythonの環境を作った際、wingetとPythonランチャーで複数バージョンのPythonを使えるようにしてみました。
どうやら最近3.10系の新しいバージョンが出たようなので、自分の環境もアップデートしてみることにしました。
Python Insider: Python 3.10.2, 3.9.10, and 3.11.0a4 are now available
現行バージョン(3.10)のアップデート
winget list
でインストール済のパッケージの一覧を表示すると、新しいバージョンがあるものについては「利用可能」列にそのバージョンが表示されます。
>winget list python 名前 ID バージョン 利用可能 ソース ------------------------------------------------------------------------------------- Python 3 Python.Python.3 3.9.7150.0 3.10.2150.0 winget Python Launcher {7DE12550-BE09-44DD-BDB4-0EC26BA89DAF} 3.10.7644.0 Python 3 Python.Python.3 3.10.1150.0 3.10.2150.0 winget Python 3 Python.Python.3 3.8.10150.0 3.10.2150.0 winget
私の環境にはPython 3.10、3.9、3.8が入っているのですが、どれも利用可能なバージョンとして 3.10.2150.0
と、3.10系の最新バージョンが表示されていました。
一覧上はどの系統もIDが Python.Python.3
となっていますが、この状態でwingetでアップデートするとどうなるのか?
>winget upgrade --id Python.Python.3 複数のインストール済みパッケージが一致する入力条件を検出しました。入力内容を修正してください。 名前 ID ------------------------------------------------------------- Python 3 Python.Python.3 Python 3.9.7 (64-bit) {0f0bf1a5-3ec1-459b-ab7c-916db941f50d} Python 3.10.1 (64-bit) {af822d5e-759c-4e77-9696-3cc835cd54a9} Python 3.8.10 (64-bit) {e9cd241b-9125-4624-9625-ff42d2f3647f}
指定したIDに一致するパッケージが複数あるということで、何やら別々のIDが表示されました。
>winget upgrade --id {af822d5e-759c-4e77-9696-3cc835cd54a9} 見つかりました Python 3 [Python.Python.3] バージョン 3.10.2150.0 このアプリケーションは所有者からライセンス供与されます。 Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。 Downloading https://www.python.org/ftp/python/3.10.2/python-3.10.2-amd64.exe ██████████████████████████████ 26.9 MB / 26.9 MB インストーラーハッシュが正常に検証されました パッケージのインストールを開始しています... インストールが完了しました
アップデートされたようです。
改めてインストール済Pythonの一覧を表示してみると、Python 3.10系のみアップデートされていました。
>winget list python 名前 ID バージョン 利用可能 ソース ------------------------------------------------------------------------------------- Python 3 Python.Python.3 3.9.7150.0 3.10.2150.0 winget Python Launcher {7DE12550-BE09-44DD-BDB4-0EC26BA89DAF} 3.10.7644.0 Python 3 Python.Python.3 3.10.2150.0 winget Python 3 Python.Python.3 3.8.10150.0 3.10.2150.0 winget >py --version Python 3.10.2
ひとつ前のバージョン(3.9系)のアップデート
先のURLによると3.9系のアップデートも出ているようでしたので、試してみようと思ったのですが。
>winget show --versions python3 見つかりました Python 3 [Python.Python.3] バージョン ----------- 3.10.2150.0 3.10.1150.0 3.10.150.0 3.9.7150.0 3.9.6150.0 3.9.5150.0 3.9.4150.0 ...
2022/2/7時点では、winget用のパッケージとして 3.9.10
は出ていないようでした。
3.10系がでていることもあり、もしかすると3.9系の最新版はwingetに来ないかもしれないのかもと思い、公式サイトからインストーラーを落として入れてみることにしました。
https://www.python.org/downloads/release/python-3910/ からWindows installer (64-bit)をダウンロードして、インストールを実行。
そのあとで、あらためてインストール済のPythonの一覧を表示してみたところ、ちゃんと3.9系のバージョンがあがっていました。
>winget list python 名前 ID バージョン 利用可能 ソース ------------------------------------------------------------------------------------- Python 3 Python.Python.3 3.9.10150.0 3.10.2150.0 winget Python Launcher {7DE12550-BE09-44DD-BDB4-0EC26BA89DAF} 3.10.7644.0 Python 3 Python.Python.3 3.10.2150.0 winget Python 3 Python.Python.3 3.8.10150.0 3.10.2150.0 winget
現行の最新バージョンであればwinget経由でアップデートしていけそうですが、それよりも前の系統については、必要に応じて手動でアップデートしないといけないのかもしれません。