「Python Install Manager とは」の版間の差分
(→インストール) |
(→インストール) |
||
| (1人の利用者による、間の57版が非表示) | |||
| 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コマンド)の両方を削除して下さい。 | ||
| − | Python完全アンインストール手順 | + | '''Python完全アンインストール手順''' |
https://www.insource-da.co.jp/dxpedia/02_0008.html | 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にすることを強く推奨します。 | ||
| − | ファイル:アプリ実行エイリアス python.png | + | |
| + | [[ファイル:アプリ実行エイリアス python.png|700px]] | ||
| + | |||
| + | |||
| + | 以上の掃除が終わったら、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のバージョンに依存する | ||
| + | アプリケーションを実行することが容易になりました。 | ||
| + | |||
| + | その分パッケージのコマンドの管理がややこしくなりました。 | ||
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のバージョンに依存する アプリケーションを実行することが容易になりました。
その分パッケージのコマンドの管理がややこしくなりました。