これらの2つの行の違いは何ですか?
#!/usr/bin/python
#!/usr/bin/env python
これは Python とは何の関係もありませんが、シバン ラインの動作に関係しています。
多くの UNIX ライクなシステムでは、シバン行に絶対パス名を指定する必要があります ( /usr/bin/python
.
しかし、ディレクトリに Pyyhon がある別のマシンにそのスクリプトを移動するとどうなる/usr/local/bin
でしょうか? それはうまくいきません、それは何です。$HOME/python/bin
または、テスト目的で別の Python インタープリターを使用したいだけの場合でも、シバン行を変更する必要があります。
env
それを回避する方法です。通常は常にに/usr/bin
あるため、シバン行に絶対パスとして安全に含めることができます。
この場合のenv
コマンド自体は、python
その実行可能ファイルのパスを検索して実行します。
このenv
コマンドは実際にはそれ以上のことを実行できます。環境を出力したり ( )、特定env
のプロセスのために一時的に変更したりできます ( env xyzzy=plugh myprog
) 。固定された場所で。