Python-Script in der Python-Shell starten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
StefanL38
User
Beiträge: 7
Registriert: Mittwoch 29. Dezember 2010, 18:52

Hallo,

ich habe schon in Basic, Delphi programmiert.
Das heißt die grundlegenden des Programmierens sind mir vertraut.
Jetzt möchte ich mich mit Python beschäftigen.

Um kleine Programme zu testen fände ich es bequemer diese direkt aus der Python-Shell heraus zu starten.
Ich habe mit googeln dazu folgende Anleitung gefunden. In der Python-Shell execfile('script.py') eingeben.

Python 3.8 32bit kennt aber execfile nicht
Fehlermeldung NameError: name 'execfile' is not defined

Ich bin erstaunt, dass man in der shell nicht einfach die Datei samt Pfad eingibt und dann wird es ausgeführt.
Das spuckt auch eine Fehlermeldung aus
C:\Users\Stefan\MyTest-001.py
^
SyntaxError: unexpected character after line continuation character

Habe ich jetzt alle DAU-Fehler konsequent abgegrast oder gibt es noch mehr?

Ich wäre euch sehr dankbar wenn mir jemand erklärt wie man direkt aus der shell heraus ein *.py-Script startet.
Ich weiß wie es aus einem CMD-Fenster heraus geht. Ich möchte aber unbedingt wissen wie startet man es direkt aus der Python-shell heraus

viele Grüße

Stefan
Benutzeravatar
noisefloor
User
Beiträge: 4193
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Ich bin erstaunt, dass man in der shell nicht einfach die Datei samt Pfad eingibt und dann wird es ausgeführt.
Die Python-Shell ist ein interaktive Shell, die nach dem Prinzip "REPL" (Read-Evalute-Print Loop) arbeitet. D.h. das ist zum Testen und Rumspielen, aber eigentlich nichts, um andere Skripte darin auszuführen.

Dafür startest du unter Windows eine Eingabeaufforderung oder Powershell und führst da mit `python dein_skript.py` dein Skript aus. Oder du nimmst eine IDE - Thonny steht z.B. im Ruf, sehr anfängerfreundlich zu sein - darin kannst du dein Skript aus ausführen. Und wenn was nicht läuft direkt korrigieren. Macht wesentlich mehr Sinn als das, was dir vorschwebt.

Zu `execfile`: das gibt es in Python 3 nicht, dass ist Python 2. Und letzteres ist seit 1.1.2020 ohne Support durch die Python Entwickler.

Gruß, noisefloor
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

`execfile` sollte man auch nicht verwenden und auch nicht die Alternative, die für Python3 in der Dokumentation steht, weil die Skripte nicht mehr unabhängig voneinander sind, und Reste des letzten Laufs im Speicher bleiben könnten. Was ist so kompliziert daran, einfach eine neue Python-Instanz zu starten?
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

Vielleicht ist es hilfreich, die Python Shell eher als Werkzeug zur Interaktion mit der Programmiersprache Python bzw. als interaktiven Interpreter zu sehen. Sie ist nicht als Shell im Sinne einer OS Shell gedacht und deswegen haben Funktionen wie das (einfache) Starten von externen Prozessen da auch nichts verloren. Es gibt aber Tools, die den Python-Interpreter um viele Komfortfunktionen, darunter auch Shell-Features, erweitern. Zum Beispiel IPython (interaktiver Python-Interpreter, der sich ein bisschen wie eine Shell-verhält) oder Xonsh (eine Shell, die Python versteht). In Ipython kannst du einen externen Prozess durch ein vorangestelltes ! starten (z.B. "!./mein_skript.py").
StefanL38
User
Beiträge: 7
Registriert: Mittwoch 29. Dezember 2010, 18:52

Hallo noisefloor, Sirius3, nezzcarth,

vielen Dank fürs Anworten. Ich habe inzwischen herausgefunden das ich mit Python IDLE genau das machen kann was ich mir vorstelle.
Das Python-Fenster mit Fenster-Titel "Python 3.8 (32bit) " war sozusagen die falsche Exe.
Das Fenster "Python 3.8.2 Shell" macht das so wie ich mir das vorstelle.

Ich hatte den Begriff "shell" selbst verwendet weil ich noch nicht wusste, dass es neben "Python 3.8 (32bit) " auch noch "Python 3.8.2 Shell" gibt.

Wie wird denn nun das eine und das andere offiziell genannt?
Ich würde denken das Fenster mit Namen "Python 3.8.2 Shell" ist das Programm mit dem man Python-Programme schreibt und auch testet.
Oder muss man sich dazu unbedingt noch irgendwelche anderen Tools installieren?

viele Grüße

Stefan
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@StefanL38: Python-Programme schreibt man in einem Editor oder einer IDE und testet sie, mindestens wenn es Konsolenprogramme sind, am besten in einer Konsole vom Betriebssystem.

Wenn man keine anderen Programme installieren will kann man IDLE als Editor/IDE verwenden, aber so wirklich gut ist das nicht. Halt ziemlich rudimentär. Und wirklich nur für Python.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten