これらの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) 。固定された場所で。