web-dev-qa-db-ja.com

一部のpythonスクリプトが#!/ usr / bin / env pythonで始まるのはなぜですか?

いくつかのpythonスクリプトが

#!/usr/bin/env python

の代わりに

#!/usr/bin/python

pythonスクリプトは#!/usr/bin/envを使用する唯一のスクリプトですか?たとえば#!/usr/bin/env bashまたは#!/usr/bin/env Perlで始まるスクリプトはありますか?そうでない場合、なぜpythonスクリプトが異なるのですか?

40
Linux Jedi

ジェイコブの答えはそれをよく説明しています。ただし、もう1つ言いたいことがあります。

pythonで/usr/bin/env/を使用すると、もう1つの目的があります。 pythonサポート 仮想環境/usr/bin/env pythonを使用すると、スクリプトが仮想環境内にある場合、仮想環境内で実行されるようになります。一方、/usr/bin/pythonは仮想環境外で実行されます。

19
sid

上記の回答に加えて、/usr/bin/envを使用すると、Pythonを非標準の場所にインストールできます。また、PATHが正しく設定されていれば、スクリプトは、/usr/bin/envを持つUNIXスタイルのシステムで変更されずに実行されます。これには、LinuxおよびOS/Xの最新バージョンが含まれます。

7
YitzikC