「Python Install Manager とは」の版間の差分
(→パッケージのコマンドの扱いの違い) |
(→パッケージのコマンドの扱いの違い) |
||
| 109行: | 109行: | ||
但し、PIM版の pythonランタイムは複数同時にインストール可能なため、'''Scriptsディレクトリ'''には Path が通っていません。 | 但し、PIM版の pythonランタイムは複数同時にインストール可能なため、'''Scriptsディレクトリ'''には Path が通っていません。 | ||
| − | このため、パッケージのコマンドは PATH の通っている '''~/AppData/Local/Python/bin''' に置かれます。 | + | このため、パッケージのコマンドは '''PATH の通っている''' '''~/AppData/Local/Python/bin''' に置かれます。 |
このディレクトリは一つしかないので、複数のpythonランタイムに同じ名前のパッケージのコマンドがインストールされると | このディレクトリは一つしかないので、複数のpythonランタイムに同じ名前のパッケージのコマンドがインストールされると | ||
2026年10月8日 (木) 00:07時点における版
メインページ>コンピュータの部屋#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 ディレクトリに格納されていた、パッケージと共にインストールされる CLIコマンドが、一つのディレクトリに集約され、いつでも利用できるようになった。
以下に PIM の詳細を説明します。
インストール
まず、インストールから説明します。
実は、PIM のインストールでは、pythonの前のバージョンを完全にインストールしないといろいろな不具合に襲われます。 下記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]を選んでインストールすることもできます。
最初の pythonランタイムのインストール
PIM がインストールされた時点では python ランタイムは何もインストールされていません。
powershellのコマンドラインで
py
と叩くと、最新版の 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 でも起動できるようになりました。
パッケージのコマンドの扱いの違い
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 でインストールした時点では ~/AppData/Local/Python/bin にはパッケージのコマンドは置かれず
py install --refresh
が叩かれると、PIM は各pythonランタイムの Scriptsディレクトリの状況を調べ、~/AppData/Local/Python/bin に置くべき コマンドを選んで置きます。従って、パッケージをインストールしても、py install --refresh を実行しないとコマンドは使えません。