Jawaban:
Beberapa orang mungkin menggunakan python berbeda (perl, dll.) Daripada yang satu sistem. /usr/bin/env pythonakan menjalankan versi yang dikonfigurasikan sebagai versi saat ini, mungkin membuat skrip lebih portabel.
Di sisi lain, kabarnya, beberapa sistem tidak memiliki /usr/bin/env. Juga, Anda tidak dapat menggunakan #!/usr/bin/env foo xsebagai pengganti #!foo x, karena foo xakan ditafsirkan sebagai argumen tunggal. Jadi nilai pendekatannya bisa diperdebatkan.
info coreutils 'env invocation'saya dapat melihat bentuk panggilan ini memastikan itu adalah biner eksternal, bukan shell built-in, tetapi tidak ada indikasi bagaimana env pythonbedanya python?
PATHmungkin termasuk yang /usr/local/binpertama. Jika seseorang telah menginstal python secara manual di sana, maka envakan memanggilnya, sedangkan #!/usr/bin/pythonakan memotongnya.
virtualenvadalah alat yang cukup populer, dan menginstal python executable di direktori kerja. Anda akan membutuhkan envtrik untuk membuatnya berfungsi dengan benar.
env pythonsama dengan python. Namun masalahnya adalah Anda tidak bisa menulis seperti shebang #!python: Anda harus menentukan path lengkap.