Quand j'utilise le shebang #!/usr/bin/env python
pour exécuter un script, comment le système sait-il quel python
utiliser? si je cherche un python
chemin bin dans les variables d'environnement je ne trouve rien.
env | grep -i python
Réponse acceptée :
Le shebang attend un chemin complet vers l'interpréteur à utiliser, donc la syntaxe suivante serait incorrecte :
#!python
La définition d'un chemin complet comme celui-ci peut fonctionner :
#!/usr/local/bin/python
mais ne serait pas portable car python pourrait être installé dans /bin
, /opt/python/bin
, ou n'importe où ailleurs.
Utilisation de env
#!/usr/bin/env python
est une méthode permettant de manière portable de spécifier à l'OS un chemin complet équivalent à celui où python
est d'abord situé dans le PATH
.