Wie führe ich ein Python-Programm direkt aus?
Ich habe eine .py- Datei (zum Beispiel mnik.py ) in gedit erstellt. Es läuft reibungslos im Terminal.
Befehl geht
python3 mnik.py
Aber wenn ich auf die Datei klicke, wird sie mit gedit geöffnet. Ich kann es nicht direkt ausführen, indem ich auf klicke.
Was ist zu tun?
python3
in der Befehlszeile mit einem Argument ist eine hervorragende Möglichkeit, Python-Skripte auszuführen. Es ist in der Tat der einfachste Weg, ein Programm auszuführen, das ein Terminal und Argumente benötigt (wie viele meiner eigenen Skripte, aber auch Programme wiemercurial
,sphinx
). Möchtest du erklären, warum das, was ich seit über 20 Jahren mache, nicht der richtige Weg ist?./scriptname
, bestätigt nicht Ihre Behauptung, dass ein Skript über die Befehlszeile mit ausgeführt werden kannpython3
. Es gibt verschiedene Möglichkeiten von Python - Skripte ausgeführt und dabeipython3 ./mnik.py
ist auch eine richtige Art und Weise , Dinge zu tun, es ist einfach anders (und zumindest Sie python3 erhalten auf diese Weise und nicht python2 als eher mit den meisten ist die Antworten bisher)Antworten:
Es gibt zwei Dinge, die benötigt werden.
#!
Zeile enthalten, die dem Betriebssystem mitteilt, welcher Interpreter verwendet werden soll. In Ihrem Fall Ihre ganz zuerst muss Zeile im Code sein#!/usr/bin/env python3
Sie müssen den Dateimanager öffnen, unter Bearbeiten -> Einstellungen -> Verhalten auswählen, was mit ausführbaren Dateien geschehen soll
chmod +x /path/to/script.py
Klicken Sie im Terminal und in der GUI mit der rechten Maustaste auf die Datei und ändern Sie deren Eigenschaften -> BerechtigungenDie allererste Zeile heißt shebang line und muss mit beginnen
#!
; Was als nächstes kommt, ist der Name des Interpreters, der Ihren Code liest. Wenn Sie verwenden, könnenpython3
Sie entweder#!/usr/bin/python3
oder#!/usr/bin/env python3
für die Portabilität verwenden. Wenn Sie keinen Code verwenden, der spezifisch für die Python-Version ist, verwenden Sie einfach#!/usr/bin/env python
Hinweis zur Skriptausgabe:
Wenn Ihr Skript die Ausgabe auf die Konsole druckt, muss es über ein Terminalfenster verfügen oder alternativ GUI-Dialogfelder wie z
zenity
. VerwendenRun in Terminal
Sie lieber die Option, wenn Sie den Code sehen möchten. Wenn Sie möchten, dass das Skript etwas tut, ohne die Konsolenausgabe zu sehen, verwenden Sie dieRun
Option.Wenn Sie über Befehlszeilenparameter wie
sys.argv[1]
im Skript verfügen, können Sie diese nur festlegen, wenn das Terminalfenster geöffnet ist.quelle
Files
Programm auf dem Launcher. In Windows-Sprache wäre das Datei-Explorer oderMy Computer
nautilus
im Terminal#!
(shebang) in Python-Skripte#!/usr/bin/env python
ruft Python2 auf den meisten Ubuntu-Systemen auf. Obwohl Sie ein für Python3 geschriebenes Python-Skript mit Python2 kompatibel machen können, würde ich nicht davon ausgehen, dass das OP dies getan hat.#!/usr/bin/env python3
scheint ein passenderes shebangSie müssen den Speicherort des Programms zur Ausführung Ihres Codes in die erste Zeile stellen und dann das Skript so einstellen, dass es als ausführbare Datei ausgeführt wird, indem Sie seine Berechtigungen ändern. Dies setzt voraus, dass Sie Ihre Anwendungen über ein Terminal oder ein anderes Skript starten.
Finden Sie Ihre Python-Installation
Fügen Sie die Programme Lage auf der obersten Zeile des Programms mit einem
#!
vorSetzen Sie das Python-Skript auf Ausführungsrechte
Jetzt können Sie das Skript direkt ausführen
Codeauflistung für test.py
quelle
Wenn Sie dieses Programm ohne Eingabe ausführen möchten,
python3 mnik.py
müssen Sie das Skript ausführbar machen und sicherstellen, dasspython3
es zum Ausführen verwendet wird.Das erste kannst du machen indem du rennst
Die zweite Möglichkeit besteht darin , als erste Zeile eines Skripts eine Shebang-Zeile hinzuzufügen , die python3 aufruft . Auf allen Ubuntu-Systemen, mit denen ich gearbeitet habe und die mit python3 geliefert wurden, können Sie python3 erhalten, indem Sie die folgende Zeile oben hinzufügen:
Nach diesen beiden Änderungen können Sie eingeben
/path/to/mnik.py
,./mnik.py
oder einfach nurmnik.py
(letzteres erfordert das Skript in Ihrem PATH zu sein).Wenn Sie diese Änderungen vornehmen, können Sie auch eine Umbenennung
mnik.py
in in Betrachtmnik
ziehen. Dies ist bei Python-Paketen mit Befehlen, die auf PyPI veröffentlicht werden, üblich.quelle
/
fehlt zumindest eine Front. Bitte erläutern Sie, was in Ihrem Kommentar "Es" steht. Ist es die Bash Shell? Ist es Windows Command.com? Von wo aus rufen Sie das Programm auf und mit welcher Befehlszeilensyntax?