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 .