ラインは何ですか
#!/usr/bin/env python
に使用されるPythonスクリプトの最初の行で?
UNIX および Linux では、これはインタープリターとして使用するバイナリーを示します ( Wiki ページも参照してください)。たとえば、シェル スクリプトは によって解釈され/bin/sh
ます。
#!/bin/sh
Python の場合、バイナリがどこにインストールされているか、またはどちらを使用するかを想定できないため、少し注意が必要です。したがって、/usr/bin/env
トリック。で最初にある python バイナリを使用し$PATH
ます。実行していることを確認できますwhich python
インタープリター行を使用すると、スクリプトを実行可能ファイルに chmod することでスクリプトを実行できます。そして、それを実行するだけです。したがって、スクリプトで始まる
#!/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
これはシバンラインと呼ばれます。
コンピューティングでは、シバン (ハッシュバン、ハッシュリング、またはパウンド バンとも呼ばれます) は文字「#!」を指します。テキスト ファイルの最初の 2 文字の場合。Unix ライクなオペレーティング システムは、これらの 2 つの文字の存在をファイルがスクリプトであることを示し、ファイルの最初の行の残りの部分で指定されたインタープリターを使用してそのスクリプトを実行しようとします。たとえば、Bourne シェルのシェル スクリプトは最初の行から始まります。
UNIX および同様のオペレーティング システムでは、この行は、ファイルが実行された場合に使用されるインタープリターを示します。
アンドリが言ったように。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のインタープリターへのコメントにすぎません。