it-swarm.com.de

Führen Sie Python-Skripte aus, ohne `python` explizit aufzurufen

Ich benutze Debian Linux.

Ich habe mich gefragt, ob es eine Möglichkeit gibt, die Ausführung von all Python-Skripten im Terminal durch Eingabe von script.py (anstelle von python script.py) zu konfigurieren.

31
user2018084

Sie müssen zwei Dinge tun:

  • Stellen Sie sicher, dass die Datei ausführbar ist: chmod +x script.py
  • Verwenden Sie einen Shebang, um dem Kernel mitzuteilen, welchen Interpreter er verwenden soll. Die oberste Zeile des Skripts sollte lauten:

    #!/usr/bin/python
    

    Dies setzt voraus, dass Ihr Skript mit dem Standardpython ausgeführt wird. Wenn Sie eine bestimmte Version benötigen, geben Sie einfach im Shebang an:

    #!/usr/bin/python2.7
    

Jetzt können Sie Folgendes eingeben:

    ./script.py

wenn sich das Skript in Ihrem aktuellen Verzeichnis befindet, oder:

    script.py

wenn sich der Speicherort des Skripts zufällig in Ihrem PATH befindet, oder:

    path/to/script.py

andernfalls.

52
Paul

Unter Linux können Sie einfach den Hashbang (auch bekannt als Shebang) verwenden. Fügen Sie die Zeile hinzu

#!/usr/bin/python

wenn Sie den Standard-Python-Interpreter ausführen möchten.

#!/path/to/python[x.x]

um eine bestimmte Version zu verwenden, oder

#!/usr/bin/env python

Wenn Sie möchten, dass die Umgebung Python für Sie findet.

Sie müssen das Skript auch ausführbar machen

chmod +x script[.py] 
31
Gaurav Joseph

Benutzen:

#!/usr/bin/env python

Dadurch wird sichergestellt, dass der Python, den der Benutzer erwartet, derjenige ist, der das Skript ausführt. Dies ist besonders wichtig, wenn der Benutzer virtualenv verwendet, um eine bestimmte Version von Python in einer bestimmten Umgebung zu verwenden.

1
Cory Klein

Verwenden Sie eine Shebang-Zeile oben in Ihrem Skript wie folgt:

!/usr/bin/python

Aktualisieren Sie die entsprechende Python-Version, auf der Sie das Skript ausführen möchten. z.B. Für Python 3.6 ist es

! /usr/bin/python3.6

für Standardinterpreter

!/usr/bin/python

Hinweis: Stellen Sie sicher, dass das Skript über ausführbare Berechtigungen verfügt.

0
Suraj Bora