human
Pourquoi les gens écrivent-ils #!/usr/bin/env python à la première ligne d'un script Python
gpt
Afin d'exécuter le script Python, nous devons indiquer trois choses au shell :

* Que le fichier est un script
* Quel interpréteur nous voulons utiliser pour exécuter le script
* Le chemin de cet interpréteur

Le shebang ```#!``` accomplit (1.). Le shebang commence par ```#``` car le caractère ```#``` est un marqueur de commentaire dans de nombreux langages de script. Le contenu de la ligne shebang est donc automatiquement ignoré par l'interpréteur.
La commande ```env``` accomplit (2.) et (3.). Pour citer "grawity,"

> Une utilisation courante de la commande ```env``` est de lancer des interpréteurs, en utilisant le fait que env recherchera $PATH pour la commande qu'on lui demande de lancer. Étant donné que la ligne shebang nécessite la spécification d'un chemin absolu, et étant donné que l'emplacement de divers interpréteurs (perl, bash, python) peut varier beaucoup, il est courant d'utiliser : ```#!/usr/bin/env perl``` au lieu d'essayer de deviner s'il s'agit de /bin/perl, /usr/bin/perl, /usr/local/bin/perl, /usr/local/pkg/perl, /fileserver/usr/bin/perl ou /home/MrDaniel/usr/bin/perl sur le système de l'utilisateur...

> D'autre part, env est presque toujours dans /usr/bin/env. (Sauf dans les cas où ce n'est pas le cas ; certains systèmes peuvent utiliser /bin/env, mais c'est assez rare et cela n'arrive que sur des systèmes non-Linux.)