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

提供: tknotebook
移動: 案内検索

メインページ>コンピュータの部屋#Python>Python Tips

この記事では複数のバージョンのPythonを使い分ける方法を紹介します。尚、内容は Windows 限定、他の環境では未確認です。


Python Launcher

Python3 インストール時、特に指定しなければ c:\Windows に py.exe/pyw.exe というコマンドがインストールされます。Python Launcher と呼ばれるものです。

Windowsで複数のバージョンのPythonを使い分ける場合、pythonコマンドにパスを通して使うのは素人、この Python Launcher を使いましょう。コマンドラインで

prime.py

と打ったり、explorerで prime.py をダブルクリックした時に起動されるのも この Python Launcher です。これはコマンドラインで

py prime.py

と打つことと同じ意味になり、最後にインストールした python が起動します。

Python Launcher は Pythonスクリプトファイルのシェバン行を読んで、起動する Python インタープリターを切り替える機能があります。

Python ファイルのシェバン行は以下のようにします


Python2 を使う場合

#!python2


Python3 を使う場合

#!python3


より細かく Pythonのバージョンまで指定するときは

#!python3.5

というようにマイナーバージョンまで指定してください。

py prime.py

というようにプログラムを起動すれば、お望みのバージョンの python でプログラムを実行できます。 シャバン行を書かなければ最後にインストールした pythonが起動します。

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バージョンの指定などは行わないでください。