Respuestas:
Algunas personas pueden usar una pitón diferente (perl, etc.) que la del sistema. /usr/bin/env python
ejecutaría la versión configurada como la actual, posiblemente haciendo que el script sea más portátil.
Por otro lado, según se informa, algunos sistemas no tienen /usr/bin/env
. Además, no se puede usar #!/usr/bin/env foo x
como reemplazo de #!foo x
, porque foo x
se interpretará como un argumento único. Entonces, el valor del enfoque es discutible.
info coreutils 'env invocation'
mi punto de vista, esta forma de llamada se asegura de que sea un binario externo en lugar de un shell incorporado, pero no hay indicación de cómo env python
sería diferente python
.
PATH
probablemente incluye /usr/local/bin
primero. Si alguien ha instalado manualmente Python allí, env
lo llamará, mientras que #!/usr/bin/python
lo omitirá.
virtualenv
es una herramienta bastante popular, e instala un ejecutable de Python en el directorio de trabajo. Necesitarías el env
truco para que funcione correctamente.
env python
es lo mismo que python
. Sin embargo, el problema es que no puedes escribir un shebang como #!python
: debes especificar una ruta completa.