Réponses:
Certaines personnes peuvent utiliser un python (perl, etc.) différent de celui du système. /usr/bin/env python
exécuterait la version configurée comme la version actuelle, ce qui pourrait rendre le script plus portable.
D'un autre côté, certains systèmes n'en auraient pas /usr/bin/env
. En outre, vous ne pouvez pas l'utiliser #!/usr/bin/env foo x
comme remplacement #!foo x
, car foo x
sera interprété comme un seul argument. La valeur de l'approche est donc discutable.
info coreutils 'env invocation'
je peux voir que cette forme d'appel s'assure qu'il s'agit d'un binaire externe au lieu d'un shell intégré, mais aucune indication en quoi env python
serait-elle différente de python
?
PATH
comprend probablement d' /usr/local/bin
abord. Si quelqu'un y a installé manuellement python, il env
l'appellera alors #!/usr/bin/python
qu'il le contournera.
virtualenv
est un outil assez populaire, et il installe un exécutable python dans le répertoire de travail. Vous auriez besoin de l' env
astuce pour le faire fonctionner correctement.
env python
c'est la même chose que python
. Cependant, le problème est que vous ne pouvez pas écrire un shebang comme #!python
: vous devez spécifier un chemin complet.