Seite 1 von 1
Python-Script in der Python-Shell starten
Verfasst: Mittwoch 22. April 2020, 18:42
von StefanL38
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
Re: Python-Script in der Python-Shell starten
Verfasst: Mittwoch 22. April 2020, 18:58
von noisefloor
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
Re: Python-Script in der Python-Shell starten
Verfasst: Mittwoch 22. April 2020, 19:01
von Sirius3
`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?
Re: Python-Script in der Python-Shell starten
Verfasst: Mittwoch 22. April 2020, 19:41
von nezzcarth
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").
Re: Python-Script in der Python-Shell starten
Verfasst: Donnerstag 23. April 2020, 07:44
von StefanL38
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
Re: Python-Script in der Python-Shell starten
Verfasst: Donnerstag 23. April 2020, 10:03
von __blackjack__
@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.