Sollte ich den Shebang in meine Python-Skripte einfügen?
Fügen Sie ein Shebang in ein Python-Skript ein, um anzuzeigen:
- dieses Modul kann als Skript ausgeführt werden
- ob es nur auf python2, python3 ausgeführt werden kann oder ob es mit Python 2/3 kompatibel ist
- unter POSIX ist notwendig, wenn Sie das Skript direkt ausführen wollen, ohne
python
explizit ausführbar
Sind diese auch tragbar? Welche Form wird am häufigsten verwendet?
Wenn Sie einen Paukenschlag schreiben manuell dann verwenden Sie immer #!/usr/bin/env python
es sei denn, Sie haben einen besonderen Grund, es nicht zu verwenden. Diese Form wird auch unter Windows verstanden (Python-Startprogramm).
Note : installiert Skripte sollten ein bestimmtes Python-Executable verwenden, z.B., /usr/bin/python
o /home/me/.virtualenvs/project/bin/python
. Es ist schlimm, wenn ein Werkzeug kaputt geht, wenn Sie eine Virtualenv in Ihrer Shell aktivieren. Glücklicherweise wird der richtige Shebang in den meisten Fällen automatisch von setuptools
oder die Paketwerkzeuge Ihrer Distribution (unter Windows, setuptools
kann Wrapper erzeugen .exe
Skripte automatisch).
Mit anderen Worten, wenn sich das Skript in einem Source-Checkout befindet, werden Sie wahrscheinlich Folgendes sehen #!/usr/bin/env python
. Wenn es installiert ist, ist der Shebang ein Pfad zu einer bestimmten Python-Ausführungskomponente wie #!/usr/local/bin/python
(HINWEIS: Sie sollten die Pfade der letztgenannten Kategorie nicht manuell eingeben).
Um zu entscheiden, ob Sie Folgendes verwenden sollten python
, python2
, oder python3
im Ganzen, siehe PEP 394 - Der Befehl "python" auf Unix-ähnlichen Systemen :
-
... python
sollte in der shebang-Zeile nur für Skripte verwendet werden, die die sowohl mit Python 2 als auch 3 quellkompatibel sind.
-
in Vorbereitung auf eine eventuelle Änderung der Standardversion von Python, sollten Skripte, die nur Python 2 enthalten, entweder aktualisiert werden, damit sie kompatibel mit Python 3 zu sein oder aber python2
in der Shebang-Linie.