Shebang in pitone
In questo articolo parleremo di cosa significa shebang
in Python e di come puoi usarlo in un comando. Abbiamo incluso un programma di esempio per aiutarti a capire meglio il concetto di Python shebang
.
Definizione di shebang
La sequenza di caratteri shebang
è una sequenza di caratteri speciale in un file di script indicata da #!
. Aiuta a specificare il tipo di programma che dovrebbe essere chiamato per eseguire l’intero file di script. La sequenza di caratteri shebang
viene sempre utilizzata nella prima riga di qualsiasi file.
L’istruzione che menziona il percorso del programma viene fatta utilizzando prima il carattere shebang
e poi il percorso del programma interprete.
shebang
in Python
Per tutti gli script che devono essere eseguiti in Python3, utilizzare il seguente comando nella riga di comando:
#!/usr/bin/env python3
Sostituisci python3
con python2
se lo script è compatibile solo con la versione Python 2.7.
Se lo script è compatibile sia con Python 2 che con Python 3, è possibile utilizzare anche il seguente comando:
#!/usr/bin/env python
Questo codice è comprensibile anche su Windows Python Launcher.
Il programma sopra è preferito quando si scrive un comando shebang
in un ambiente virtuale come pyenv
. Precedentemente noto come Pythonbrew
, pyenv
è un semplice strumento di gestione delle versioni di Python che aiuta a gestire la versione di Python, installare le ultime versioni di Python e creare un ambiente virtuale di Python.
Nella maggior parte dei casi, un interprete Python è installato in /usr/bin/python
o /bin/python
. In questi due casi, l’istruzione shebang
avrà esito negativo se viene utilizzato il seguente comando:
#!/usr/local/bin/python
In conclusione, il comando shebang
è solo un modo per indicare che il seguente script è eseguibile. Pertanto, il risultato di qualsiasi script python non sarà mai influenzato se viene eseguito il comando shebang
, che sia menzionato o meno.
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn