22 Stimmen

Python-Skripte in /usr/bin

Ich schreibe eine ziemlich einfache Anwendung in Python (es ist nur eine Datei im Moment). Meine Frage ist, wie bekomme ich es so, dass das Python-Skript in /usr/bin ohne die .py-Erweiterung ausgeführt werden kann?

Zum Beispiel, statt der Ausführung von

python htswap.py args

von dem Verzeichnis aus, in dem es sich gerade befindet, möchte ich in ein beliebiges Verzeichnis wechseln können und

htswap args

Vielen Dank im Voraus!

51voto

Thomas Punkte 160390

Ziehen Sie einfach die .py Erweiterung durch Umbenennung der Datei. Dann müssen Sie die folgende Zeile an den Anfang der Datei setzen:

#!/usr/bin/env python

env ist ein kleines Programm, das die Umgebung so einrichtet, dass die richtigen python Interpreter ausgeführt wird.

Sie müssen Ihre Datei auch ausführbar machen, und zwar mit dem Befehl

chmod a+x htswap

Und werfen Sie es in /usr/local/bin . Dies ist sauberer als /usr/bin da der Inhalt dieses Verzeichnisses normalerweise vom Betriebssystem verwaltet wird.

15voto

Michiel Buddingh Punkte 5575

Die erste Zeile der Datei sollte lauten

#!/usr/bin/env python

Sie sollten die .py und machen Sie die Datei ausführbar, indem Sie

chmod ugo+x htswap

EDIT: Thomas weist zu Recht darauf hin, dass solche Skripte in /usr/local/bin und nicht in /usr/bin . Bitte geben Sie seiner Antwort eine höhere Bewertung (vielleicht auf Kosten der meinen). Sieben Upvotes (während wir sprechen) für diese Art von Zeug ist lächerlich)

2voto

rlazo Punkte 635

Paukenschlag?

#!/usr/bin/env python

Setzen Sie das an den Anfang Ihrer Datei und Sie sind bereit

1voto

b3rx Punkte 366

Hinzufügen. #!/usr/bin/env python bis ganz nach oben zum htswap.py und umbenennen htswap.py a htswap dann einen Befehl ausführen: chmod +x htswap um htswap lauffähig zu machen.

0voto

rand_acs Punkte 725

Ich sehe in den offiziellen Python-Tutorials, http://docs.python.org/tutorial/index.html dass

#! /usr/bin/env python

wird so verwendet, wie es die obigen Antworten nahelegen. Beachten Sie, dass Sie auch Folgendes verwenden können

#!/usr/bin/python

Dies ist der Stil, den Sie in Shell-Skripten, wie Bash-Skripten, sehen werden. Zum Beispiel

#!/bin/bash

Da die offiziellen Tuts die erste Option vorschlagen, ist dies wahrscheinlich die beste Lösung. Konsistenz im Code ist etwas, das man anstreben sollte!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X