「Pythonで作成したプログラム起動時、自動的に Pythonのバージョンを を切り替えるには」の版間の差分
(→シェバン行) |
(→Python Install Manager) |
||
| 24行: | 24行: | ||
py <pythonファイル名> | py <pythonファイル名> | ||
と打つことで任意のpythonスクリプトを実行できます。既定ではインストールされている最新の 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 ではないことが有るので注意してください。 | ||
== シェバン行 == | == シェバン行 == | ||
2026年10月7日 (水) 09:04時点における版
メインページ>コンピュータの部屋#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バージョンを使いたい場合は 以下の様に python Launcher に引数でpythonのバージョンを指定します。
py -3.6 prime.py
Pythonバージョンを指定して pip を使う
複数バージョンのpythonがインストールされている場合で、最後にインストールしたpythonにパスを通している場合, pipコマンドは最後にインストールしたpythonのバージョンしかメンテしてくれません。
任意のpythonバージョンの管理を行いたい場合は
py -3.5 -m pip ・・・・・(pipのコマンドパラメータ)
というように pip を起動します。
仮想環境
複数バージョンのpythonがインストールされている場合、pythonバージョンを指定して仮想環境を作るには
py -3.5 -m venv ・・・(venvのパラメータ)
というようにします。
仮想環境を activate しているときは、Python Launcher は、仮想環境のScriptsフォルダの python.exe を起動します。 但し スクリプトのシェバン行で pythonバージョンを指定したり、pyコマンドのオプションでバージョンを明示的に指定したりすると、 仮想環境ではなく インストール先の python.exe を起動してしまいます。これでは仮想環境にインストールしたパッケージが見えません。
仮想環境を使うときは、pythonのバ-ジョンの指定は仮想環境に任せ、シェバン行や py コマンドでのpythonバージョンの指定などは行わないでください。