質問
とは何で
#!/usr/bin/env python
第一線のpythonスクリプトで使われているのでしょうか。
解決
UNIXおよびLinuxでは、これはまた、 Wikiページを参照してください(インタプリタとして使用するバイナリ伝えます)。
例えば、シェル・スクリプトは/bin/sh
によって解釈される。
#!/bin/sh
あなたはバイナリがインストールされていると仮定することはできません、またその使用したいので、今のpythonでそれは、少しトリッキーです。したがって/usr/bin/env
トリック。これは、Pythonのバイナリが$PATH
の最初の方の使用です。あなたは、
which python
を実行していることを確認することができます
通訳ラインを使用すると、実行ファイルにそれをchmodingしてスクリプトを実行することができます。そして、ちょうどそれを実行しています。したがって、スクリプトを使用して
で始まります#!/usr/bin/env python
これらの2つの方法は同等です:
$ python script.py
と(それ以前あなたがchmod +x script.py
をやったと仮定)。
$ ./script.py
<時間>
これは、システム全体のスクリプトを作成する場合に便利です。
cp yourCmd.py /usr/local/bin/yourCmd
chmod a+rx /usr/local/bin/yourCmd
そして、あなただけの
で、どこからでもそれを呼び出しますyourCmd
他のヒント
は、これはシェバングのラインと呼ばれています
コンピューティングでは、シェバングは(もhashbang、hashpling、またはポンドバンと呼ばれる)の文字を指し、「#!」彼らは、テキストファイル内の最初の2つの文字があるとき。 Unixライクなオペレーティングシステムでは、ファイルがスクリプトであることを示すものとして、これらの2つの文字の存在を取り、ファイルの最初の行の残りの部分で指定されたインタプリタを使用して、そのスクリプトを実行してみてください。たとえば、Bourneシェルのためのシェルスクリプトは、最初の行で始まります:
UNIXおよび同様のオペレーティングシステムの下では、この行は、ファイルが実行された場合に使用されるべきインタプリタ伝えます。
Andriが言ったように。 Windowsでは、コマンドラインから起動するときに、ファイルを実行するために実行可能ファイルは協会に依存しています:
16:12:40.68 C:\>assoc .py
.py=Python.File
16:13:53.45 C:\>assoc Python.File
Python.File=Python File
16:14:01.70 C:\>ftype Python.File
Python.File="C:\Python30\python.exe" "%1" %*
は、Unixでは、シェルインタプリタがファイルで指定されたコマンドがある場合は、ファイルを開いて見て推論を行います。
'/usr/bin/env python'の検索$PATHのためのpythonとします。
通常 env は設定に使用される一部の環境変数 プログラム
何を行なえるコンピュータをどうするファイルだけを試してみてくださいファイル 指定なし通訳.. 詳細
ただ、ノート、この行は、Windowsでのインタプリタへのコメント、より多くの何ものではありません。