Quando uso lo shebang #!/usr/bin/env python
per eseguire uno script, come fa il sistema a sapere quale python
usare? se cerco un python
bin path nelle variabili di ambiente non trovo nulla.
env | grep -i python
Risposta accettata:
Shebang si aspetta un percorso completo per l'interprete da utilizzare, quindi la seguente sintassi non sarebbe corretta:
#!python
L'impostazione di un percorso completo come questo potrebbe funzionare:
#!/usr/local/bin/python
ma non sarebbe portatile poiché python potrebbe essere installato in /bin
, /opt/python/bin
, o in qualsiasi altro luogo.
Usando env
#!/usr/bin/env python
è un metodo che consente in un modo portatile di specificare al sistema operativo un percorso completo equivalente a quello in cui python
si trova prima nel PATH
.