Respostas:
Algumas pessoas podem usar um python diferente (perl, etc.) que o sistema. /usr/bin/env pythonexecutaria a versão configurada como a atual, possivelmente tornando o script mais portátil.
Por outro lado, alguns sistemas não possuem /usr/bin/env. Além disso, você não pode usar #!/usr/bin/env foo xcomo um substituto para #!foo x, porque foo xserá interpretado como um único argumento. Portanto, o valor da abordagem é discutível.
info coreutils 'env invocation'que posso ver, essa forma de chamada garante que seja binário externo, em vez de embutido no shell, mas nenhuma indicação de como env pythonseria diferente python?
PATHprovavelmente inclui /usr/local/binprimeiro. Se alguém instalou o python manualmente lá, envo chamará, enquanto #!/usr/bin/pythono ignorará.
virtualenvé uma ferramenta bastante popular e instala um executável python no diretório de trabalho. Você precisaria do envtruque para fazê-lo funcionar corretamente.
env pythoné o mesmo que python. No entanto, o problema é que você não pode escrever um shebang como #!python: você precisa especificar um caminho completo.