【Python】ソースを直接指定してプログラムを実行する方法【シバン】

プログラミングのKnow-howを共有しましょう

【Python】ソースを直接指定してプログラムを実行する方法【シバン】

スポンサーリンク

Python2,3系で「python ~」とインタプリタを指定せず、ソースそのものを指定して実行する方法、シバンについて解説していきます。

Pythonのソース実行時、以下のようにpythonのインタプリタを指定する方が多いと思います。

この指定をせず、以下のようにソースを直接指定してpythonプログラムを実行する方法があるのです。

それがシバン(shebang)です。

シバン(shebang)とは

シバンまたはシェバン (shebang) とはUNIXスクリプトの #! から始まる1行目のこと。起動してスクリプトを読み込むインタプリタを指定する。ハッシュ・バンまたはシェル・バンシャープ・バンとも言うが、これらを縮めたシェバンという呼び方が一般的かつ簡素である。

wikipedia

以下のようなシェルの1行目に記載されたものです。

上記はシェルスクリプトですが、このシバンはPythonのソースにも記述することができます。

Pythonソースを直接実行する

上記のシバンを用いて、Pythonソースを直接実行する方法を説明していきます。
今回直接実行するソース内容は以下のとおりです。

環境はLinuxであることを前提に書きますが、シバンはWindowsでも動作するのでこの方法は有効です。

1.Pythonのソース1行目にシバンを記述する

上記の1行目で何を指定しているのかというと

「#!」:この行がシバンであることを示します(Pythonでは#がコメントの意味を持ちますね)。
「/usr/bin/env」:後述「python3」のインタプリタが実際にどこにあるのかを、PATH(環境変数)を辿って探してもらうことを示します。
「python3」:実行するPythonのインタプリタです。

  • 「/usr/bin/env python3」に決まりはなく「<Pythonが存在するディレクトリ>/python3」という書き方もできます。実行したいPythonの環境に合わせて変えましょう。
  • Pythonのバージョンも指定できます。Python3系でなら「python3」を指定しますが、Python2系なら「python」を指定します。

2.Pythonのソースに実行権限を付加する

Pythonのソースが作成された時点ではユーザに実行する権限がありません。
そのため、以下のようにソースに対して実行権限を付加します。

3.Pythonのソースを直接指定して実行する

以下のようにソースを実行してみましょう。