「Python Install Manager とは」の版間の差分
(→インストール) |
(→注意) |
||
| (1人の利用者による、間の16版が非表示) | |||
| 22行: | 22行: | ||
まず、インストールから説明します。 | まず、インストールから説明します。 | ||
| − | 実は、PIM のインストールでは、pythonの旧来のバージョンや python | + | 実は、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 インストーラに比べとんでもなく高速です。 | インストールは従来の python インストーラに比べとんでもなく高速です。 | ||
| 79行: | 81行: | ||
バージョン付きのコマンド python<バージョン>.exe, python<バージョン>-64.exe, pythonw<バージョン>.exe, pythonw<バージョン>-64.exe が新たに追加されます。 | バージョン付きのコマンド python<バージョン>.exe, python<バージョン>-64.exe, pythonw<バージョン>.exe, pythonw<バージョン>-64.exe が新たに追加されます。 | ||
| + | |||
| + | ===注意=== | ||
| + | |||
| + | pythonランタイムのインストールでは、マイナーバージョンまで指定すると(例: 3.14)、その時点の最新のパッチバージョンがインストールされますが、 | ||
| + | 以下のようにパッチバージョンまで指定することもできます。 | ||
| + | py install 3.14.6 | ||
| + | この場合は、既に python3.14 がインストール済みである場合、上書きするか問合せが行われます。 | ||
| + | 上書きする場合、インストール済みの3.14は削除されて、指定されたパッチバージョンが インストールされます。 | ||
| + | インストール前の python が 3.14.7 なら インストールで 古い 3.14.6 に戻ります。 | ||
| + | |||
| + | つまり、マイナーバージョンが同時に2種類インストールされることはないということです。 | ||
| + | これは旧来のインストーラーでも同じです。パッチバージョンはバグフィックスであり、基本的に同じ ランタイムという考え方だからです。 | ||
==pythonランタイムのアンインストール== | ==pythonランタイムのアンインストール== | ||
| 90行: | 104行: | ||
バージョン付きのコマンド python<バージョン>.exe, python<バージョン>-64.exe, pythonw<バージョン>.exe, pythonw<バージョン>-64.exe は削除されます。 | バージョン付きのコマンド python<バージョン>.exe, python<バージョン>-64.exe, pythonw<バージョン>.exe, pythonw<バージョン>-64.exe は削除されます。 | ||
| + | |||
| + | ==pythonランタイムの一覧== | ||
| + | |||
| + | インストールされている python ランタイムの一覧は | ||
| + | |||
| + | py list | ||
| + | Tag Name Managed By Version Alias | ||
| + | 3.14[-64] * Python 3.14.8 PythonCore 3.14.8 python3[-64].exe, python3.14[-64].exe | ||
| + | 3.13[-64] Python 3.13.16 PythonCore 3.13.16 python3.13[-64].exe | ||
| + | |||
| + | で表示できます。 | ||
| + | |||
| + | これでも十分ですが、インストール先を確認したい場合はこれも有用です。 | ||
| + | |||
| + | py -0p | ||
| + | -V:3.14[-64] * C:\Users\中村拓男\AppData\Local\Python\pythoncore-3.14-64\python.exe | ||
| + | -V:3.13[-64] C:\Users\中村拓男\AppData\Local\Python\pythoncore-3.13-64\python.exe | ||
== ~/AppData/Local/Python/bin にあるコマンドの役割 == | == ~/AppData/Local/Python/bin にあるコマンドの役割 == | ||
| 101行: | 132行: | ||
PIM版では python3.12 でも起動できるようになりました。 | PIM版では python3.12 でも起動できるようになりました。 | ||
| − | ==注意== | + | ===注意=== |
uv でインストールする python ランタイムは ~/.local/bin に python<バージョン>.exe をインストールしますが | uv でインストールする python ランタイムは ~/.local/bin に python<バージョン>.exe をインストールしますが | ||
| − | PIM版のランタイムと名称が競合します。また uv で -- | + | PIM版のランタイムと名称が競合します。また uv で --default 付きで pythonランタイムをインストールすると |
~/.local/bin に python.exe, python3.exe をインストールするので名称が競合します。 | ~/.local/bin に python.exe, python3.exe をインストールするので名称が競合します。 | ||
どちらが起動されるかは PATH の設定次第です。 | どちらが起動されるかは PATH の設定次第です。 | ||
| 110行: | 141行: | ||
できれば PIM版とUV版のランタイムを同時に使用しない方が良いでしょう。 | できれば PIM版とUV版のランタイムを同時に使用しない方が良いでしょう。 | ||
| − | :UVは | + | :UVは PIM版のランタイムを問題なく扱えます。 |
==パッケージのコマンドの扱いの違い== | ==パッケージのコマンドの扱いの違い== | ||
| 136行: | 167行: | ||
PIMを使いだすと、パッケージのコマンドが使えず困った経験がある人は多いでしょう。すぐに py install --refresh を打ってください。 | PIMを使いだすと、パッケージのコマンドが使えず困った経験がある人は多いでしょう。すぐに py install --refresh を打ってください。 | ||
| − | + | 現在パッケージは仮想環境にインストールすることが当たり前になりつつありますが、 | |
| − | + | pipxなどシステムpythonに直接インストールしたいパッケージもごく少数有るので、 | |
| + | PIM版でもシステムpythonにパッケージをインストール | ||
| + | できるようにしています。しかし、名前の重複はいかんともしがたいので、この複雑さは諦めましょう。 | ||
| + | |||
基本、パッケージは仮想環境にインストールすべきです。 | 基本、パッケージは仮想環境にインストールすべきです。 | ||
仮想環境ならば '''Scriptsディレクトリ''' に PATHは通っているので問題なく使えます。 | 仮想環境ならば '''Scriptsディレクトリ''' に PATHは通っているので問題なく使えます。 | ||
| + | システムpython を複数インストールするのは、仮想環境の親の システムpython を複数用意するためなのです。 | ||
| + | ===注意=== | ||
| − | + | この話は uv pip XXXX --system で PIM版のシステムpython にパッケージを追加した場合も同じです。 | |
| − | + | パッケージ追加後, パッケージのコマンドを有効にするには py install --refresh が必要ですので注意してください。 | |
| − | + | ||
==まとめ== | ==まとめ== | ||
| − | + | 以上の説明からお分かりかと思いますが、pythonのインストーラーはバージョン毎に別々のインストーラー用意されることは近い将来なくなり、その代わりに、PIMで複数のバージョンを自在にインストールできるようになりました。 | |
| − | + | ||
| − | これにより | + | これにより pythonのバージョンに依存するアプリケーションを実行することが容易になりました。 |
| − | + | ||
その分パッケージのコマンドの管理がややこしくなりました。 | その分パッケージのコマンドの管理がややこしくなりました。 | ||
2026年10月11日 (日) 09:17時点における最新版
メインページ>コンピュータの部屋#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ランタイムのインストールでは、マイナーバージョンまで指定すると(例: 3.14)、その時点の最新のパッチバージョンがインストールされますが、 以下のようにパッチバージョンまで指定することもできます。
py install 3.14.6
この場合は、既に python3.14 がインストール済みである場合、上書きするか問合せが行われます。 上書きする場合、インストール済みの3.14は削除されて、指定されたパッチバージョンが インストールされます。 インストール前の python が 3.14.7 なら インストールで 古い 3.14.6 に戻ります。
つまり、マイナーバージョンが同時に2種類インストールされることはないということです。 これは旧来のインストーラーでも同じです。パッチバージョンはバグフィックスであり、基本的に同じ ランタイムという考え方だからです。
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 は削除されます。
pythonランタイムの一覧
インストールされている python ランタイムの一覧は
py list Tag Name Managed By Version Alias 3.14[-64] * Python 3.14.8 PythonCore 3.14.8 python3[-64].exe, python3.14[-64].exe 3.13[-64] Python 3.13.16 PythonCore 3.13.16 python3.13[-64].exe
で表示できます。
これでも十分ですが、インストール先を確認したい場合はこれも有用です。
py -0p -V:3.14[-64] * C:\Users\中村拓男\AppData\Local\Python\pythoncore-3.14-64\python.exe -V:3.13[-64] C:\Users\中村拓男\AppData\Local\Python\pythoncore-3.13-64\python.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 で --default 付きで pythonランタイムをインストールすると ~/.local/bin に python.exe, python3.exe をインストールするので名称が競合します。 どちらが起動されるかは PATH の設定次第です。
できれば PIM版とUV版のランタイムを同時に使用しない方が良いでしょう。
- UVは PIM版のランタイムを問題なく扱えます。
パッケージのコマンドの扱いの違い
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に直接インストールしたいパッケージもごく少数有るので、 PIM版でもシステムpythonにパッケージをインストール できるようにしています。しかし、名前の重複はいかんともしがたいので、この複雑さは諦めましょう。
基本、パッケージは仮想環境にインストールすべきです。 仮想環境ならば Scriptsディレクトリ に PATHは通っているので問題なく使えます。 システムpython を複数インストールするのは、仮想環境の親の システムpython を複数用意するためなのです。
注意
この話は uv pip XXXX --system で PIM版のシステムpython にパッケージを追加した場合も同じです。 パッケージ追加後, パッケージのコマンドを有効にするには py install --refresh が必要ですので注意してください。
まとめ
以上の説明からお分かりかと思いますが、pythonのインストーラーはバージョン毎に別々のインストーラー用意されることは近い将来なくなり、その代わりに、PIMで複数のバージョンを自在にインストールできるようになりました。
これにより pythonのバージョンに依存するアプリケーションを実行することが容易になりました。
その分パッケージのコマンドの管理がややこしくなりました。