Python-Datei im Terminal ausführen

47

Ich versuche regelmäßig zu lernen, wie ich meine Skripte über Ubuntus Terminal laufen lasse. That being said ich kenne bash, wgetund awkgenannt zu werden , aber wie rufe ich Python - Dateien in das Terminal zu laufen? Ich würde das gerne lernen, bin mir aber nicht sicher, wo ich es recherchieren soll. Ich habe eine .pywDatei, die auf mehrere .pyDateien in einem Ordner verweist .

DᴀʀᴛʜVᴀᴅᴇʀ
quelle
Unterschiedlicher Fall im Folgenden, weil der Originaltitel zu allgemein einschließlich ist - etwa das Ausführen eines Python-Skripts im Terminal zum Aufrufen einer Funktion stackoverflow.com/q/25837063/54964
Léo Léopold Hertz 준영

Antworten:

81

Option 1: Rufen Sie den Dolmetscher an

  • Für Python 2: python <filename>.py
  • Für Python 3: python3 <filename>.py

Option 2: Lassen Sie das Skript den Interpreter aufrufen

  1. Stellen Sie sicher, dass die erste Zeile Ihrer Datei hat #!/usr/bin/env python.
  2. Machen Sie es ausführbar - chmod +x <filename>.py.
  3. Und führe es so aus ./<filename>.py
abhshkdz
quelle
Was ist der Grund, dass, wenn ich meine .py ausführen möchte, es nur mit Ihrer Methode Option 1 funktioniert und die zweite einen Syntaxfehler gibt?
Krsztr
Was ist, wenn Sie eine neue Python-Datei öffnen wollen?
Asmgx
8

Stellen Sie dem Dateinamen des Skripts einfach das Präfix voran python. Z.B:

python filename.py
Winston Ewert
quelle
5

Erwähnenswert ist auch, dass Sie durch Hinzufügen eines -iFlags nach pythondem Ausführen der Sitzung weitere Codierungen vornehmen können. So was:

python -i <file_name.py>
keyan3d
quelle
3
python <filename.py>

pyw sollte genauso laufen, denke ich. Sie können eine interaktive Konsole auch mit just starten

python

Sie können auch vermeiden, Python explizit aufrufen zu müssen, indem Sie oben im Skript einen Shebang hinzufügen:

#!/usr/bin/env python

... oder eine beliebige Anzahl von Variationen davon

IlluminAce
quelle
2

Führen Sie zuerst den folgenden Befehl aus

chmod +x <filename>.py

Fügen Sie dann oben im Skript #!den Pfad des Python-Interpreters hinzu:

#!/usr/bin/python

Wenn Sie möchten, dass das Skript unabhängig vom Speicherort des Python-Interpreters ist, können Sie das envProgramm verwenden. Fast alle Unix-Varianten unterstützen Folgendes, vorausgesetzt, der Python-Interpreter befindet sich in einem Verzeichnis im Benutzer $PATH:

#! /usr/bin/env python
Shanaka
quelle
0

Wechseln Sie cdin das Verzeichnis mit der Erweiterung .py und führen Sie einen der beiden folgenden Befehle aus:

python <filename>.py  # for Python 2.x  
python3 <filename>.py # for Python 3.x 

Alternativ können Sie einen der folgenden beiden Befehle ausführen:

python /path/to/<filename>.py  # for Python 2.x  
python3 /path/to/<filename>.py # for Python 3.x 
karel
quelle
-2

Versuchen Sie es mit dem Befehl python3statt python. Wenn das Skript in Python3 geschrieben wurde und Sie versuchen, es mit Python2 auszuführen, können Probleme auftreten. Ubuntu hat beides; Das Ändern des Programmnamens auf python3(anstatt zu ersetzen python) machte dies möglich. Ubuntu benötigt v2.7 (Stand 16.02.2017). Löschen oder entfernen Sie Python2 also NICHT, sondern behalten Sie beide bei. Machen Sie es sich zur Gewohnheit, Python3 zum Ausführen von Skripten zu verwenden, die beide ausgeführt werden können.

Tony
quelle
1
-1 Python 3 kann keine Python 2-Skripte ausführen (mit wenigen Ausnahmen).
wjandrea
Mein schlechtes, dein Recht. Das ist wahrscheinlich der Grund, warum Ubuntu immer noch Python 2 verwendet. Sorry, wjandrea, danke, dass du mich korrigiert hast.
Tony