Ein Python-Skript über die Befehlszeile aufrufen, ohne vorher "python" einzugeben

7

Frage: Wie rufe ich in der Befehlszeile ein Python-Skript auf, ohne python vor den Namen des Skripts eingeben zu müssen? Ist das überhaupt möglich?

Info:

Ich habe ein praktisches Skript für den Zugriff auf SQLite-Datenbanken über die Befehlszeile geschrieben, aber ich mag es nicht, "python SQLsap args" zu tippen und stattdessen einfach "SQLsap args" einzugeben. Ich weiß nicht, ob das überhaupt möglich ist, aber es wäre gut zu wissen, ob es so ist. Für mehr als nur dieses Programm.

    
Narcolapser 03.08.2010, 20:08
quelle

6 Antworten

25

Sie können einem Shebang in der ersten Zeile des Skripts vorangehen:

%Vor%

Dies teilt Ihrer aktuellen Shell mit, in welchen Befehl das Skript eingefügt werden soll.

    
efritz 03.08.2010, 20:10
quelle
4

Du willst einen Shebang. %Code%. Setze das in die erste Zeile deines Python-Skripts. Die #!/path/to/python ist eigentlich eine magische Zahl, die das Betriebssystem anweist, die Datei als Skript für das genannte Programm zu interpretieren. Sie können #! oder, um portierbarer zu sein, /usr/bin/python angeben, das das Programm /usr/bin/env python aufruft und Ihnen mitteilt, dass Sie den installierten Python-Interpreter des Systems haben möchten.

Sie müssen Ihr Skript auch in Ihren Pfad einfügen, es sei denn, Sie geben /usr/bin/env ein.

    
nmichaels 03.08.2010 20:10
quelle
3

Angenommen, dies ist auf einem Unix-System, können Sie einen "Shebang" am Anfang der Datei wie folgt hinzufügen:
#!/usr/bin/env python

Und dann setze das ausführbare Flag wie folgt:
chmod +x SQLsap

    
baloo 03.08.2010 20:11
quelle
2

Unter Windows oder DOS können Sie Ihren Python-Code so in eine .BAT-Datei einfügen.

%Vor%

Leider kann ich die erste Zeile der Ausgabe nicht loswerden, aber Sie könnten den Text immer nach '' 'ändern, um so etwas wie der Name der Anwendung zu sein und die Leute würden es nicht bemerken.

Idealerweise würden Sie nicht viel Python-Code in die .BAT-Datei einfügen, sondern eine .py-Datei importieren und dann die .__main__ -Methode ausführen.

    
Michael Dillon 03.08.2010 21:04
quelle
1

Eine andere Möglichkeit wäre das Packen des Python-Skripts.

Dann müssten Sie nur noch $ pip install package-name ausführen und einfach $ package-name von einem beliebigen Verzeichnis ausführen würde Ihr Python-Skript ausführen.

Ich würde diese Methode empfehlen, da Sie Ihr Python-Skript schnell freigeben / installieren / verwenden / entfernen können.

Ich habe ein einfaches Skript QuickPackage geschrieben, das sofort Python-Pakete für Ihr tolles Skript erstellen und hochladen kann, indem Sie einfach den Pfad Ihres Python-Skript.

Beispiel :

%Vor%

Verwendung :

Verwendung Führen Sie einfach quickpackage aus und geben Sie den Pfad Ihres Python-Skripts ein.

Beispiel:

%Vor%

Führen Sie nun einfach Ihr Skript aus, indem Sie $ quickpackage (in diesem Fall)

ausführen     
yask 05.10.2015 15:58
quelle
0

In Unix verwenden Sie eine Shebang-Zeile am Anfang Ihres Skripts:

%Vor%

mache die Datei ausführbar:

%Vor%

und lege es in ein Verzeichnis auf deinem PATH (kann ein Symlink sein):

%Vor%

In Windows wurden Dateien wie * .py standardmäßig mit python.exe geöffnet. (Wenn nicht, können Sie manuell einstellen.) Sie können also * .py Dateien in der Konsole direkt ausführen.

Beachten Sie Folgendes:

In Fenstern lautet der neue Zeilencode "\ r \ n", in Unix jedoch "\ n". Wenn Ihr Python-Skript das Windows-Format hat, meldet die Ausführung in Unix den Fehler "Keine Datei oder Verzeichnis". Um dieses Problem zu beheben, ersetzen Sie einfach alle "\ r \ n" mit "\ n" in Unix.

    
cfh008 28.09.2014 04:25
quelle

Tags und Links