「Python Install Manager とは」の版間の差分
(→パッケージのコマンドの扱いの違い) |
(→インストール) |
||
| (1人の利用者による、間の12版が非表示) | |||
| 14行: | 14行: | ||
# 従来の python コマンドの他に linux版等と互換な名称のpython3 コマンドが提供されるようになった。 | # 従来の python コマンドの他に linux版等と互換な名称のpython3 コマンドが提供されるようになった。 | ||
# バージョン番号付きの python3.13 コマンドなども提供され、py コマンドを使わなくても python のバージョンが指定できるようになった。 | # バージョン番号付きの python3.13 コマンドなども提供され、py コマンドを使わなくても python のバージョンが指定できるようになった。 | ||
| − | # 従来、各ランライムの Scripts ディレクトリに格納されていた、パッケージと共にインストールされる | + | # 従来、各ランライムの Scripts ディレクトリに格納されていた、パッケージと共にインストールされる コマンドが、一つのディレクトリに集約され、いつでも利用できるようになった。 |
以下に PIM の詳細を説明します。 | 以下に PIM の詳細を説明します。 | ||
| 22行: | 22行: | ||
まず、インストールから説明します。 | まず、インストールから説明します。 | ||
| − | 実は、PIM | + | 実は、PIM のインストールでは、pythonの旧来のバージョンや python Launcherを完全にアンインストールしないといろいろな不具合に襲われます。 |
下記URLの手順に従って、古い python は削除した方が良いでしょう。古いランタイムと python Launcher(pyコマンド)の両方を削除して下さい。 | 下記URLの手順に従って、古い python は削除した方が良いでしょう。古いランタイムと python Launcher(pyコマンド)の両方を削除して下さい。 | ||
| 43行: | 43行: | ||
'''PIM(Python Install Manager)'''のインストーラは '''https://www.python.org/downloads/''' からもダウンロードできますし、 | '''PIM(Python Install Manager)'''のインストーラは '''https://www.python.org/downloads/''' からもダウンロードできますし、 | ||
| − | '''MSストア'''から['''Python Install Manager'''] | + | '''MSストア'''から['''Python Install Manager''']を選んでインストールすることもできます。MSストア版と python.org版は同一です。 |
| + | |||
| + | 尚、PIMは自動更新ですので、手動での更新は不要です。 | ||
== 最初の pythonランタイムのインストール == | == 最初の pythonランタイムのインストール == | ||
| 51行: | 53行: | ||
powershellのコマンドラインで | powershellのコマンドラインで | ||
py | py | ||
| − | と叩くと、最新版の pythonランタイムのインストールが始まり、終わると | + | と叩くと、最新版の pythonランタイムのインストールが始まり、終わると 最新のpythonが起動します。 |
| − | python ランタイムは '''~/AppData/Local/Python | + | インストールは従来の python インストーラに比べとんでもなく高速です。 |
| − | ここには PATH が通っていません。python | + | |
| + | python ランタイムは '''~/AppData/Local/Python の pythoncore-3.14-64''' というようなフォルダにインストールされますが | ||
| + | ここには PATH が通っていません。python や他のコマンドを起動するコマンド群は '''~/AppData/Local/Python/bin''' に置かれます。 | ||
こちらには PATH が通っています。 | こちらには PATH が通っています。 | ||
| 65行: | 69行: | ||
==pythonランタイムのインストール== | ==pythonランタイムのインストール== | ||
| − | + | pythonのランタイムを追加インストールするには | |
py install <バージョン> | py install <バージョン> | ||
例 py install 3.12 | 例 py install 3.12 | ||
| 98行: | 102行: | ||
旧来の python launcher では 古いpythonを起動するのに py -3.12 とかしていましたが、 | 旧来の python launcher では 古いpythonを起動するのに py -3.12 とかしていましたが、 | ||
PIM版では python3.12 でも起動できるようになりました。 | PIM版では python3.12 でも起動できるようになりました。 | ||
| + | |||
| + | ==注意== | ||
| + | |||
| + | uv でインストールする python ランタイムは ~/.local/bin に python<バージョン>.exe をインストールしますが | ||
| + | PIM版のランタイムと名称が競合します。また uv で --system 付きで pythonランタイムをインストールすると | ||
| + | ~/.local/bin に python.exe, python3.exe をインストールするので名称が競合します。 | ||
| + | どちらが起動されるかは PATH の設定次第です。 | ||
| + | |||
| + | できれば PIM版とUV版のランタイムを同時に使用しない方が良いでしょう。 | ||
| + | |||
| + | :UVは PIM版のランタイムを問題なく扱えます。UVは複数pythonランタイムの同時使用に関するポリシーが若干違います。 | ||
==パッケージのコマンドの扱いの違い== | ==パッケージのコマンドの扱いの違い== | ||
2026年10月8日 (木) 04:02時点における最新版
メインページ>コンピュータの部屋#Python>Python Tips
目次
はじめに
2025年10月7日 python3.14 はリリースされると共に、python の新しいインストーラ Python Install Manager(PIM) がリリースされました。
PIM はこれまでの個別のランタイム用インストーラーとは異なり、 複数の python ランタイムを自在にインストール/アンインストールするためのインストールマネージャーで 特定の python ランタイムとは独立した存在です。今のところ Windows 専用ですが、これまでの特定の python ランタイムとは 異なる考え方で作られています。
- 複数の python ランタイムを自在にインストール/アンインストールでき管理できる。
- 従来の python コマンドの他に linux版等と互換な名称のpython3 コマンドが提供されるようになった。
- バージョン番号付きの python3.13 コマンドなども提供され、py コマンドを使わなくても python のバージョンが指定できるようになった。
- 従来、各ランライムの Scripts ディレクトリに格納されていた、パッケージと共にインストールされる コマンドが、一つのディレクトリに集約され、いつでも利用できるようになった。
以下に PIM の詳細を説明します。
インストール
まず、インストールから説明します。
実は、PIM のインストールでは、pythonの旧来のバージョンや python Launcherを完全にアンインストールしないといろいろな不具合に襲われます。 下記URLの手順に従って、古い python は削除した方が良いでしょう。古いランタイムと python Launcher(pyコマンド)の両方を削除して下さい。
Python完全アンインストール手順
https://www.insource-da.co.jp/dxpedia/02_0008.html
実はこれだけでも不十分で、[設定]→[アプリの詳細設定]→[アプリ実行エイリアス] の画面で、python.exe/pythonw.exe/python3.exe を OFF にすることをお勧めします。
アプリ実行エイリアスとは ~/AppData/Local/Microsoft/WindowsApps に置かれるコマンドのことで、 上記の設定で削除することができます。ここには notepad.exe など様々などこからでも使えるコマンドが登録されていて、 python.exe は利用者が python コマンドを打鍵したとき MSストアへ誘導するなどの機能が有りますが、pythonランタイムと衝突して 様々な不具合を生じさせることが報告されていますので、OFFにすることを強く推奨します。
以上の掃除が終わったら、PIMをインストールしましょう。
PIM(Python Install Manager)のインストーラは https://www.python.org/downloads/ からもダウンロードできますし、 MSストアから[Python Install Manager]を選んでインストールすることもできます。MSストア版と python.org版は同一です。
尚、PIMは自動更新ですので、手動での更新は不要です。
最初の pythonランタイムのインストール
PIM がインストールされた時点では python ランタイムは何もインストールされていません。
powershellのコマンドラインで
py
と叩くと、最新版の pythonランタイムのインストールが始まり、終わると 最新のpythonが起動します。
インストールは従来の python インストーラに比べとんでもなく高速です。
python ランタイムは ~/AppData/Local/Python の pythoncore-3.14-64 というようなフォルダにインストールされますが ここには PATH が通っていません。python や他のコマンドを起動するコマンド群は ~/AppData/Local/Python/bin に置かれます。 こちらには PATH が通っています。
python.exe, pythonw.exe, python3.exe, pythonw3.exe、python3-64.exe, pythonw3-64.exe はインストールした pythonランタイムのうち、最新のランタイムのpythonを起動するコマンドです。
pip.exe, pip3.exe はインストールした pythonランタイムのうち、最新のランタイムのpipを起動するコマンドです。
python3.14.exe, python3.14-64.exe, pythonw3,14.exe, pythonw3.14-64.exe 等の pythonランタイムバージョンが付いたコマンドは、指定バージョンの pythonランタイムの python を起動します。
pythonランタイムのインストール
pythonのランタイムを追加インストールするには
py install <バージョン> 例 py install 3.12
というように、python install コマンドに pythonランタイムのバージョンを指定します。
インストールする pythonランタイムが既にインストール済みの pythonランタイムより古ければ ~/AppData/Local/Python/bin に有る python.exe, pythonw.exe, python3.exe, pythonw3.exe、python3-64.exe, pythonw3-64.exe は更新されず、最新の python を呼び出すように保たれます。
インストールする pythonランタイムが既にインストール済みの pythonランタイムより新しければ ~/AppData/Local/Python/bin に有る python.exe, pythonw.exe, python3.exe, pythonw3.exe、python3-64.exe, pythonw3-64.exe は更新され、最新の python を呼び出すようになります。
バージョン付きのコマンド python<バージョン>.exe, python<バージョン>-64.exe, pythonw<バージョン>.exe, pythonw<バージョン>-64.exe が新たに追加されます。
pythonランタイムのアンインストール
pythonのランタイムをインストールするには
py uninstall <バージョン> 例 py uninstall 3.12
というように、python uninstall コマンドに pythonランタイムのバージョンを指定します。
アンインストールする pythonランタイムが削除されることによって、インストール済みの pythonランタイムの最も新たしいバージョンが変化すれば、 ~/AppData/Local/Python/bin に有る python.exe, pythonw.exe, python3.exe, pythonw3.exe、python3-64.exe, pythonw3-64.exe が更新され、インストール済みの pythonランタイムの最も新たしいバージョンのpython を呼び出すようになります。
バージョン付きのコマンド python<バージョン>.exe, python<バージョン>-64.exe, pythonw<バージョン>.exe, pythonw<バージョン>-64.exe は削除されます。
~/AppData/Local/Python/bin にあるコマンドの役割
以上からわかるように python.exe, pythonw.exe, python3.exe, pythonw3.exe、python3-64.exe, pythonw3-64.exe は 常にインストールされている最新のpythonを起動するのに対し、 python<バージョン>.exe, python<バージョン>-64.exe, pythonw<バージョン>.exe, pythonw<バージョン>-64.exe は バージョンで指定されたバージョンの python を起動します。
旧来の python launcher では 古いpythonを起動するのに py -3.12 とかしていましたが、 PIM版では python3.12 でも起動できるようになりました。
注意
uv でインストールする python ランタイムは ~/.local/bin に python<バージョン>.exe をインストールしますが PIM版のランタイムと名称が競合します。また uv で --system 付きで pythonランタイムをインストールすると ~/.local/bin に python.exe, python3.exe をインストールするので名称が競合します。 どちらが起動されるかは PATH の設定次第です。
できれば PIM版とUV版のランタイムを同時に使用しない方が良いでしょう。
- UVは PIM版のランタイムを問題なく扱えます。UVは複数pythonランタイムの同時使用に関するポリシーが若干違います。
パッケージのコマンドの扱いの違い
Python のパッケージには、Pythonの実行環境に コマンドを追加するものが有ります。 PIM版の Pythonランタイムでも、パッケージをインストールすると、パッケージによってはコマンドが pythonランタイムに追加されますが、 それは、Pythonランタイム の Scripts ディレクトリに置かれます。
例えば pythonに jupyter を pip でインストールすると、Scriptsディレクトリに jupyter.exe をはじめたくさんの コマンドが追加されます。これは旧来の pythonでも PIM版のpythonランタイムでも同じです。
但し、PIM版の pythonランタイムは複数同時にインストール可能なため、Scriptsディレクトリには Path が通っていません。 このため、パッケージのコマンドは PATH の通っている ~/AppData/Local/Python/bin に置かれます。
このディレクトリは一つしかないので、複数のpythonランタイムに同じ名前のパッケージのコマンドがインストールされると 名前が衝突してしまいます。そこで、PIM ではインストールされている pythonランタイムの中でより新しいもののパッケージの コマンドを優先します。
ここで注意すべきなのは、パッケージのコマンドは ~/AppData/Local/Python/bin に自動的には置かれないことです。 パッケージを pip でインストールした時点ではコマンドは Scriptsディレクトリ に置かれますが ~/AppData/Local/Python/bin には置かれません。
py install --refresh
が叩かれると、PIM は各pythonランタイムの Scriptsディレクトリの状況を調べ、~/AppData/Local/Python/bin に置くべき コマンドを選んで置きます。従って、パッケージをインストールしても、py install --refresh を実行しないとコマンドは使えません。
PIMを使いだすと、パッケージのコマンドが使えず困った経験がある人は多いでしょう。すぐに py install --refresh を打ってください。
pipxなどシステムpythonにインストールしたいパッケージは有るので、この仕組みはありがたいですが、 システムpythonに直接パッケージをインストールするのは無理が有る話なのでこの不便さは諦めましょう。 基本、パッケージは仮想環境にインストールすべきです。 仮想環境ならば Scriptsディレクトリ に PATHは通っているので問題なく使えます。
この仕組みは複数の システムpython を同時にインストールして使うための苦肉の策と言えますが、最善の策とは言えません。
基本的に システムpython を複数インストールしてそれぞれにパッケージをインストールして使うのには無理が有ります。
システムpython を複数インストールするのは、仮想環境の親の システムpython を複数用意するためなのです。
まとめ
以上の説明からお分かりかと思いますが、pythonのインストーラは バージョン毎に個別にインストールすることをやめ、 PIMで複数のバージョンを自在にインストールできるようになりました。
これにより pythonのバージョンに依存する アプリケーションを実行することが容易になりました。
その分パッケージのコマンドの管理がややこしくなりました。