Shebang in Python
In diesem Artikel werden wir darüber sprechen, was shebang
in Python bedeutet und wie Sie es in einem Befehl verwenden können. Wir haben ein Beispielprogramm beigefügt, das Ihnen hilft, das Konzept von Python shebang
besser zu verstehen.
shebang
Definition
Die Zeichenkette shebang
ist eine SonderZeichenkette in einer Skriptdatei mit der Bezeichnung #!
. Es hilft bei der Angabe des Programmtyps, der aufgerufen werden soll, um die gesamte Skriptdatei auszuführen. Die Zeichenkette shebang
wird immer in der ersten Zeile einer Datei verwendet.
Die Anweisung, die den Pfad des Programms erwähnt, wird gemacht, indem zuerst das Zeichen shebang
und dann der Pfad des Interpreterprogramms verwendet wird.
shebang
in Python
Verwenden Sie für alle Skripte, die in Python3 ausgeführt werden sollen, den folgenden Befehl in der Befehlszeile:
#!/usr/bin/env python3
Ersetzen Sie python3
durch python2
, wenn das Skript nur mit Python 2.7 kompatibel ist.
Wenn das Skript sowohl mit Python 2 als auch mit Python 3 kompatibel ist, kann auch der folgende Befehl verwendet werden:
#!/usr/bin/env python
Dieser Code ist auch im Windows Python Launcher verständlich.
Das obige Programm wird bevorzugt, wenn ein shebang
-Befehl in einer virtuellen Umgebung wie pyenv
geschrieben wird. Früher als Pythonbrew
bekannt, ist pyenv
ein einfaches Python-Versionsverwaltungstool, das dabei hilft, die Python-Version zu verwalten, die neuesten Python-Versionen zu installieren und eine virtuelle Python-Umgebung zu erstellen.
In den meisten Fällen wird ein Python-Interpreter unter /usr/bin/python
oder /bin/python
installiert. In diesen beiden Fällen schlägt die Anweisung shebang
fehl, wenn der folgende Befehl verwendet wird:
#!/usr/local/bin/python
Zusammenfassend lässt sich sagen, dass der Befehl shebang
nur ein Zeichen dafür ist, dass das folgende Skript ausführbar ist. Daher wird das Ergebnis eines Python-Skripts niemals beeinflusst, wenn der Befehl shebang
ausgeführt wird, unabhängig davon, ob es erwähnt wird oder nicht.
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