「Pythonで作成したプログラム起動時、自動的に Pythonのバージョンを を切り替えるには」の版間の差分
(→Python Launcher) |
(→仮想環境での python の起動) |
||
| (1人の利用者による、間の10版が非表示) | |||
| 4行: | 4行: | ||
この記事では複数のバージョンのPythonを使い分ける方法を紹介します。尚、内容は Windows 限定、他の環境では未確認です。 | この記事では複数のバージョンのPythonを使い分ける方法を紹介します。尚、内容は Windows 限定、他の環境では未確認です。 | ||
| + | 2026.10.7 追記 内容は Python Intall Manager 版に限定することにしました。 | ||
| + | 旧来の python インストーラのインストールした python では異なるかもしれません、あしからず。 | ||
| − | + | 尚、旧来の python インストーラは python 3.16 からは提供されないので早めに乗り換えることをおすすめします。 | |
| − | |||
| − | + | ==Python Install Manager== | |
| − | + | ||
| − | + | '''Python Install Manager''' をインストールすると、 '''py.exe''' というコマンドが | |
| − | py | + | ~/AppData/Local/Microsoft/WindowsApps |
| − | + | インストールされます。 | |
| + | |||
| + | Powershell のコマンドラインで、単に '''py''' と打鍵すると、インストールされている最新の python が起動されます。 | ||
| + | |||
| + | 以下 '''Python Install Manager''' は '''PIM''' と呼称します。 | ||
| + | |||
| + | |||
| + | PIM は以下のように | ||
| + | py <pythonファイル名> | ||
| + | と打つことで任意のpythonスクリプトを実行できます。既定ではインストールされている最新の python でスクリプトを実行します。 | ||
| + | |||
| + | 尚、PIM は python3 や python という名前のコマンドもインストールし ~/AppData/Local/Python/bin にインストールし、 | ||
| + | コマンドラインから呼び出せますが、シェバン行に従って python を切り替える機能は有りません。 | ||
| + | PIMで複数の python をインストールしている場合は、最も最新のpythonが起動されます。 | ||
| + | python3.14 というようにバージョン付きの名前で python を呼び出すことも可能で、これも起動する python のバージョンは指定どおりです。 | ||
| + | |||
| + | '''注意!''' | ||
| + | uv 等で システムpython をインストールしている場合は、 | ||
| + | コマンドラインから python, python3, python<バージョン> で起動する python は | ||
| + | PIM版 python ではないことが有るので注意してください。 | ||
| + | |||
| + | == シェバン行 == | ||
| − | + | PIM には Pythonスクリプトファイルのシェバン行を読んで、起動する Python インタープリターを切り替える機能があります。 | |
Python ファイルのシェバン行は以下のようにします | Python ファイルのシェバン行は以下のようにします | ||
| 30行: | 52行: | ||
より細かく Pythonのバージョンまで指定するときは | より細かく Pythonのバージョンまで指定するときは | ||
| − | #!python3. | + | #!python3.13 |
というようにマイナーバージョンまで指定してください。 | というようにマイナーバージョンまで指定してください。 | ||
| 38行: | 60行: | ||
というようにプログラムを起動すれば、お望みのバージョンの python でプログラムを実行できます。 | というようにプログラムを起動すれば、お望みのバージョンの python でプログラムを実行できます。 | ||
シャバン行を書かなければ最後にインストールした pythonが起動します。 | シャバン行を書かなければ最後にインストールした pythonが起動します。 | ||
| + | |||
| + | シェバン行で指定した pythonがインストールされていなければ、エラーになります。 | ||
| + | No runtime installed that matches 3.13 Try running "py install 3.13". | ||
==Pythonバージョンの直接指定(オーバライド)== | ==Pythonバージョンの直接指定(オーバライド)== | ||
| − | + | pythonスクリプトをお望みのpythonバージョンで動かしたい場合や、シェバン行を無視してお望みのpythonバージョンを使いたい場合は | |
| − | 以下の様に | + | 以下の様に py に引数でpythonのバージョンを指定します。 |
| − | py -3. | + | py -3.12 prime.py |
| + | |||
| + | 尚、指定した版の python がインストールされていなければ エラーになります。 | ||
| + | ERROR] No runtime installed that matches 3.12. Try running "py install 3.12". | ||
==Pythonバージョンを指定して pip を使う== | ==Pythonバージョンを指定して pip を使う== | ||
| − | + | 複数バージョンのpythonがインストールされている場合, pipコマンドは最新のpythonのバージョン専用です。 | |
| − | + | 任意のpythonバージョンのパッケージを管理したい場合は | |
| − | py -3. | + | py -3.12 -m pip ・・・・・(pipのコマンドパラメータ) |
というように pip を起動します。 | というように pip を起動します。 | ||
| − | == | + | ==仮想環境の作成== |
複数バージョンのpythonがインストールされている場合、pythonバージョンを指定して仮想環境を作るには | 複数バージョンのpythonがインストールされている場合、pythonバージョンを指定して仮想環境を作るには | ||
| − | py -3. | + | py -3.13 -m venv ・・・(venvのパラメータ) |
というようにします。 | というようにします。 | ||
| − | + | ==仮想環境での python の起動== | |
| − | 但し | + | |
| − | + | ||
| + | '''仮想環境をアクティベートしているコマンドラインでは、py は原則仮想環境のScriptsフォルダの python.exe を起動します。''' | ||
| + | |||
| + | 但し スクリプトのシェバン行でバージョンを明示的に指定したりすると、python の起動に失敗します。 | ||
| + | [ERROR] No runtime installed that matches 3.13.2. Try running "py install 3.13.2". | ||
| + | また、 | ||
| + | pt -3.13 <pythonファイル名> | ||
| + | というように バージョンを指定して python を起動すると、仮想環境ではなく システムpython を起動してしまいます。 | ||
| − | + | 仮想環境を使うときは、pythonのバ-ジョンの指定は仮想環境に任せ、 | |
| + | シェバン行や py コマンドでのpythonバージョンの指定などは行わないでください。 | ||
2026年10月7日 (水) 09:25時点における最新版
メインページ>コンピュータの部屋#Python>Python Tips
この記事では複数のバージョンのPythonを使い分ける方法を紹介します。尚、内容は Windows 限定、他の環境では未確認です。
2026.10.7 追記 内容は Python Intall Manager 版に限定することにしました。 旧来の python インストーラのインストールした python では異なるかもしれません、あしからず。
尚、旧来の python インストーラは python 3.16 からは提供されないので早めに乗り換えることをおすすめします。
目次
Python Install Manager
Python Install Manager をインストールすると、 py.exe というコマンドが
~/AppData/Local/Microsoft/WindowsApps
インストールされます。
Powershell のコマンドラインで、単に py と打鍵すると、インストールされている最新の python が起動されます。
以下 Python Install Manager は PIM と呼称します。
PIM は以下のように
py <pythonファイル名>
と打つことで任意のpythonスクリプトを実行できます。既定ではインストールされている最新の python でスクリプトを実行します。
尚、PIM は python3 や python という名前のコマンドもインストールし ~/AppData/Local/Python/bin にインストールし、 コマンドラインから呼び出せますが、シェバン行に従って python を切り替える機能は有りません。 PIMで複数の python をインストールしている場合は、最も最新のpythonが起動されます。 python3.14 というようにバージョン付きの名前で python を呼び出すことも可能で、これも起動する python のバージョンは指定どおりです。
注意! uv 等で システムpython をインストールしている場合は、 コマンドラインから python, python3, python<バージョン> で起動する python は PIM版 python ではないことが有るので注意してください。
シェバン行
PIM には Pythonスクリプトファイルのシェバン行を読んで、起動する Python インタープリターを切り替える機能があります。
Python ファイルのシェバン行は以下のようにします
Python2 を使う場合
#!python2
Python3 を使う場合
#!python3
より細かく Pythonのバージョンまで指定するときは
#!python3.13
というようにマイナーバージョンまで指定してください。
py prime.py
というようにプログラムを起動すれば、お望みのバージョンの python でプログラムを実行できます。 シャバン行を書かなければ最後にインストールした pythonが起動します。
シェバン行で指定した pythonがインストールされていなければ、エラーになります。
No runtime installed that matches 3.13 Try running "py install 3.13".
Pythonバージョンの直接指定(オーバライド)
pythonスクリプトをお望みのpythonバージョンで動かしたい場合や、シェバン行を無視してお望みのpythonバージョンを使いたい場合は 以下の様に py に引数でpythonのバージョンを指定します。
py -3.12 prime.py
尚、指定した版の python がインストールされていなければ エラーになります。
ERROR] No runtime installed that matches 3.12. Try running "py install 3.12".
Pythonバージョンを指定して pip を使う
複数バージョンのpythonがインストールされている場合, pipコマンドは最新のpythonのバージョン専用です。
任意のpythonバージョンのパッケージを管理したい場合は
py -3.12 -m pip ・・・・・(pipのコマンドパラメータ)
というように pip を起動します。
仮想環境の作成
複数バージョンのpythonがインストールされている場合、pythonバージョンを指定して仮想環境を作るには
py -3.13 -m venv ・・・(venvのパラメータ)
というようにします。
仮想環境での python の起動
仮想環境をアクティベートしているコマンドラインでは、py は原則仮想環境のScriptsフォルダの python.exe を起動します。
但し スクリプトのシェバン行でバージョンを明示的に指定したりすると、python の起動に失敗します。
[ERROR] No runtime installed that matches 3.13.2. Try running "py install 3.13.2".
また、
pt -3.13 <pythonファイル名>
というように バージョンを指定して python を起動すると、仮想環境ではなく システムpython を起動してしまいます。
仮想環境を使うときは、pythonのバ-ジョンの指定は仮想環境に任せ、 シェバン行や py コマンドでのpythonバージョンの指定などは行わないでください。