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

提供: tknotebook
移動: 案内検索
 
2行: 2行:
 
[[メインページ]]>[[コンピュータの部屋#Python]]>[[Python Tips]]
 
[[メインページ]]>[[コンピュータの部屋#Python]]>[[Python Tips]]
  
 +
この記事では複数のバージョンのPythonを使い分ける方法を紹介します、
  
==Pythonプログラムの関連付による起動の問題点==
 
  
Windows に Python をインストールし、例えば Pythonのソースファイルを prime.py を作成すると、
+
==Python Launcher==
コマンドプロンプトで
+
  
 +
Python インストール時、特に指定しなければ c:\Windows に py.exe/pyw.exe というコマンドがインストールされます。Python Launcher と呼ばれるものです。
 +
 +
複数のバージョンのPythonを使い分ける場合、pythonコマンドにパスを通して使うのは素人、この Python Launcher を使いましょう。コマンドラインで
 
  prime.py
 
  prime.py
 +
と打ったり、explorerで prime.py をダブルクリックした時に起動されるのも この Python Launcher です。これはコマンドラインで
 +
py prime.py
 +
と打つことと同じ意味になり、最後にインストールした python が起動します。
  
と叩いたり、explorerの prime.py をダブルクリックするだけで prime.py を簡単にPythonで実行できます。
+
Python Launcher Pythonスクリプトファイルのシェバン行を読んで、起動する Python インタープリターを切り替える機能があります。
 
+
但し、Python2 と Python3 を両方ともインストールすると、後でインストールしたほうが実行されてしまいます。
+
これは後でインストールしたPython がファイルタイプ(Python.File, Python.NoConFile)の定義を上書きしてしまうからです。
+
 
+
==py.exe/pyw.exe コマンド==
+
 
+
Python インストール時 c:\Windows にインストールされる py.exe/pyw.exe コマンドは Python Launcher と呼ばれるものです。
+
 
+
py.exe/pyw.exe コマンドは Pythonスクリプトファイルのシェバン行を読んで、起動する Python インタープリターを切り替えます。
+
  
 
Python ファイルのシェバン行は以下のようにします
 
Python ファイルのシェバン行は以下のようにします
35行: 31行:
 
  #!Python3.5
 
  #!Python3.5
  
というように指定してください。
+
というようにマイナーバージョンまで指定してください。
  
 
  py prime.py
 
  py prime.py
  
というようにプログラムを起動すれば、お望みの python
+
というようにプログラムを起動すれば、お望みのバージョンの python でプログラムを実行できます。
実行できます。
+
シャバン行を書かなければ最後にインストールした pythonが起動します。
 
+
==インストーラが登録する関連付け==
+
 
+
Pythonのインストーラは、pythonファイルのファイルタイプを、以下のようにしてしまいます。
+
つまり、py.exe/pyw.exe ではなく、直接特定バージョンの pythonインタープリターが .pyファイルに関連付けられます。
+
 
+
Python.File=c:\python27\python.exe "%1" %*
+
Python.NoConFile=c:\python27\pythonw.exe "%1" %*
+
 
+
==ファイルタイプの変更==
+
 
+
ファイルタイプを以下のように変更すると、
+
 
+
Python.File=py.exe "%1" %*
+
Python.NoConFile=pyw.exe "%1" %*
+
 
+
コマンドプロンプトで
+
prime.py
+
というようにした場合でも、シェバン行 による自動選択が可能になります。
+
  
  
 +
==Pythonバージョンの直接指定(オーバライド)==
  
ファイルタイプの変更は、管理者として開いたコマンドプロンプトから以下のコマンドで変更できます。
+
シェバン行の無いpythonスクリプトをお望みのpythonバージョンで動かしたい場合や、シェバン行を無視してお望みのpythonバージョンを使いたい場合は
 +
以下の用の python Launcher に引数でpythonのバージョンを指定します。
  
  ftype Python.File=py.exe "%1" %*
+
  py -3.6 prime.py
ftype Python.NoConFile=pyw.exe "%1" %*
+

2018年11月18日 (日) 04:31時点における版

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

この記事では複数のバージョンのPythonを使い分ける方法を紹介します、


Python Launcher

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

複数のバージョンの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