Python 先頭行のシバン行(#!)とは
シバン行とは
シバン(shebang)行とはPythonスクリプトの先頭行のことで、このスクリプトを実行するのがPythonであることをコンピュータに伝える働きをします。
シバン行は#!から始まります。
- シバン行の例
#! python3 print( 'Hello world' )
書き方
用途
MacやLinuxでの用途
Windowsでの用途
シバン行を利用する目的
Windowsでシバン行を利用する目的は以下の通りです。
- 実行するPythonのバージョンをスクリプトから指定したい
複数バージョンのPythonがインストールされている環境では、py.exe*1を利用することでスクリプトを適切なバージョンのインタプリタ(python.exe)で実行できます。
py.exeはシバン行の読み込みに対応しており、シバン行をもとに実行するインタプリタを選択します。
- py.exeでのスクリプト実行
py pythonScript.py
なお、py.exeではシバン行がない場合はインストールされている最新のインタプリタが選択されますので、シバン行を記述しなくても問題ありません。
また、コマンドラインからバージョンを指定することもできます。コマンドラインとシバン行をどちらも記述した場合は、コマンドラインが優先されます。
- インストール済のPython3の中で最新のバージョンを指定
py -3 pythonScript.py
- バージョン3.6を指定
py -3.6 pythonScript.py
少し試すレベルであればコマンドライン指定で問題ないかと思いますが、バージョンが明確に決まっている場合はスクリプト上に記述したほうが分かりやすいですし、実行時の手間も減ると思います。
- 開発時のPythonのバージョン情報を残しておきたい
Windowsユーザで1つのバージョンのPythonしかインストールしていない場合など、シバン行が直接必要ない場合もあるかもしれません。
一方で、情報共有という観点では、シバン行は有益な情報源となります。スクリプトを再利用したり第三者に配布する可能性がある場合、シバン行を記述しておくと後々役に立つかもしれません。
Pythonはバージョンによって動作が異なる場合がありますので、スクリプト上から開発時のバージョンがわかればデバッグ時に参考になります。
最低限、Python2かPython3かどうかは分かるようにしておくと良いと思います。
*1:Pythonの実行ランチャ。Python3.3以降のバージョンでインストールされる。Anacondaなどのディストリビューションでには含まれない