「Pythonで作成したプログラム起動時、自動的に Pythonのバージョンを を切り替えるには」の版間の差分
(→Pythonバージョンの直接指定(オーバライド)) |
(→Python Launcher) |
||
(1人の利用者による、間の10版が非表示) | |||
2行: | 2行: | ||
[[メインページ]]>[[コンピュータの部屋#Python]]>[[Python Tips]] | [[メインページ]]>[[コンピュータの部屋#Python]]>[[Python Tips]] | ||
− | + | この記事では複数のバージョンのPythonを使い分ける方法を紹介します。尚、内容は Windows 限定、他の環境では未確認です。 | |
==Python Launcher== | ==Python Launcher== | ||
− | + | Python3 インストール時、特に指定しなければ c:\Windows に py.exe/pyw.exe というコマンドがインストールされます。Python Launcher と呼ばれるものです。 | |
− | + | Windowsで複数のバージョンのPythonを使い分ける場合、pythonコマンドにパスを通して使うのは素人、この Python Launcher を使いましょう。コマンドラインで | |
prime.py | prime.py | ||
と打ったり、explorerで prime.py をダブルクリックした時に起動されるのも この Python Launcher です。これはコマンドラインで | と打ったり、explorerで prime.py をダブルクリックした時に起動されるのも この Python Launcher です。これはコマンドラインで | ||
18行: | 18行: | ||
Python ファイルのシェバン行は以下のようにします | Python ファイルのシェバン行は以下のようにします | ||
+ | |||
Python2 を使う場合 | Python2 を使う場合 | ||
− | #! | + | #!python2 |
Python3 を使う場合 | Python3 を使う場合 | ||
− | #! | + | #!python3 |
より細かく Pythonのバージョンまで指定するときは | より細かく Pythonのバージョンまで指定するときは | ||
− | #! | + | #!python3.5 |
というようにマイナーバージョンまで指定してください。 | というようにマイナーバージョンまで指定してください。 | ||
37行: | 38行: | ||
というようにプログラムを起動すれば、お望みのバージョンの python でプログラムを実行できます。 | というようにプログラムを起動すれば、お望みのバージョンの python でプログラムを実行できます。 | ||
シャバン行を書かなければ最後にインストールした pythonが起動します。 | シャバン行を書かなければ最後にインストールした pythonが起動します。 | ||
− | |||
==Pythonバージョンの直接指定(オーバライド)== | ==Pythonバージョンの直接指定(オーバライド)== | ||
シェバン行の無いpythonスクリプトをお望みのpythonバージョンで動かしたい場合や、シェバン行を無視してお望みのpythonバージョンを使いたい場合は | シェバン行の無いpythonスクリプトをお望みのpythonバージョンで動かしたい場合や、シェバン行を無視してお望みのpythonバージョンを使いたい場合は | ||
− | + | 以下の様に python Launcher に引数でpythonのバージョンを指定します。 | |
py -3.6 prime.py | py -3.6 prime.py | ||
50行: | 50行: | ||
複数バージョンのpythonがインストールされている場合で、最後にインストールしたpythonにパスを通している場合, pipコマンドは最後にインストールしたpythonのバージョンしかメンテしてくれません。 | 複数バージョンのpythonがインストールされている場合で、最後にインストールしたpythonにパスを通している場合, pipコマンドは最後にインストールしたpythonのバージョンしかメンテしてくれません。 | ||
− | + | 任意のpythonバージョンの管理を行いたい場合は | |
py -3.5 -m pip ・・・・・(pipのコマンドパラメータ) | py -3.5 -m pip ・・・・・(pipのコマンドパラメータ) | ||
58行: | 58行: | ||
==仮想環境== | ==仮想環境== | ||
− | 仮想環境を activate | + | 複数バージョンのpythonがインストールされている場合、pythonバージョンを指定して仮想環境を作るには |
+ | |||
+ | py -3.5 -m venv ・・・(venvのパラメータ) | ||
+ | |||
+ | というようにします。 | ||
+ | |||
+ | 仮想環境を activate しているときは、Python Launcher は、仮想環境のScriptsフォルダの python.exe を起動します。 | ||
+ | 但し スクリプトのシェバン行で pythonバージョンを指定したり、pyコマンドのオプションでバージョンを明示的に指定したりすると、 | ||
+ | 仮想環境ではなく インストール先の python.exe を起動してしまいます。これでは仮想環境にインストールしたパッケージが見えません。 | ||
+ | |||
+ | 仮想環境を使うときは、pythonのバ-ジョンの指定は仮想環境に任せ、シェバン行や py コマンドでのpythonバージョンの指定などは行わないでください。 |
2018年12月2日 (日) 14:29時点における最新版
メインページ>コンピュータの部屋#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バージョンの指定などは行わないでください。