Pythonで作成したプログラム起動時、自動的に Pythonのバージョンを を切り替えるには

提供: tknotebook
2026年10月7日 (水) 09:21時点におけるNakamuri (トーク | 投稿記録)による版

移動: 案内、 検索

メインページ>コンピュータの部屋#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のパラメータ)

というようにします。

仮想環境を activate しているときは、py は、仮想環境のScriptsフォルダの python.exe を起動します。

但し スクリプトのシェバン行でバージョンを明示的に指定したりすると、python の起動に失敗します。 また、

pt -3.13 <pythonファイル名>

というように バージョンを指定して python を起動すると、仮想環境ではなく システムpython を起動してしまいます。

仮想環境を使うときは、pythonのバ-ジョンの指定は仮想環境に任せ、 シェバン行や py コマンドでのpythonバージョンの指定などは行わないでください。