3

これらの2つの行の違いは何ですか?

#!/usr/bin/python

#!/usr/bin/env python

4

1 に答える 1

1

これは Python とは何の関係もありませんが、シバン ラインの動作に関係しています。

多くの UNIX ライクなシステムでは、シバン行に絶対パス名を指定する必要があります ( /usr/bin/python.

しかし、ディレクトリに Pyyhon がある別のマシンにそのスクリプトを移動するとどうなる/usr/local/binでしょうか? それはうまくいきません、それは何です。$HOME/python/binまたは、テスト目的で別の Python インタープリターを使用したいだけの場合でも、シバン行を変更する必要があります。

envそれを回避する方法です。通常は常に/usr/binあるため、シバン行に絶対パスとして安全に含めることができます。

この場合のenvコマンド自体は、pythonその実行可能ファイルのパスを検索して実行します。

このenvコマンドは実際にはそれ以上のことを実行できます。環境を出力したり ( )、特定envのプロセスのために一時的に変更したりできます ( env xyzzy=plugh myprog) 。固定された場所で。

于 2013-04-29T00:57:20.090 に答える