Verlassen des Interpreters

Probleme bei der Installation?
Antworten
anhu42
User
Beiträge: 4
Registriert: Donnerstag 2. Juni 2022, 16:30

Hallo zusammen,

auf meinem Linux-System kann ich den Interpreter mit exit() oder quit() verlassen. Bei Windows geht das nicht. Ich habe es mit Version 3.7.4 und 3.9.13 getestet. Da muss ich Strg+Z und anschließend Return drücken. Die Fehlermeldung bei der Eingabe von exit() lautet:

name 'exit' is not defined

Was mich dabei irritiert ist die Tatsache, dass bei einer Google-Suche bei den Treffern, die ich mir angeschaut habe, das Verlassen mit exit() immer funktionieren sollte. Irgendwie ist dieses Verhalten nicht einmal gut dokumentiert. Und diese Verhalten macht auch für mich keinen Sinn.
Hat jemand eine Idee oder ist meine Frage "zu akademisch"?

Viele Grüße,
Andreas
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Den interaktiven Intepreter kann man auch unter Windows mit quit() verlassen.
Die Funktion ist ausschließlich dafür gedacht. Für das Beenden von Programmen soll man das Programm zu seinem natürlichen Ende kommen lassen oder (wenn man einen Exit-Code mitgeben möchte) sys.exit() verwenden.
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

`quit` und `exit` werden in `site.py` gesetzt, wenn Python nicht mit `-S`gestartet wird. Was sagt denn `import site; print(site)` unter Windows? Sind die verlinkten Zeilen da enthalten? Und was steht in `sys.flags.no_site`?
anhu42
User
Beiträge: 4
Registriert: Donnerstag 2. Juni 2022, 16:30

Hallo,
quit() funktioniert nicht, exit () funktioniert erst nach import sys , wenn man sys.exit() eingibt. sys.quit() funktioniert nie.
import site print (site)
ergibt
<module 'site' from 'C:\\temp\\python\\python37.zip\\site.pyc>
'sys.flags.no_site'
hat den Wert 1.

Mein Tutorial habe ich etwa zu 25% durchgearbeitet. Ich denke, dass ich noch einiges zu lernen habe.
Benutzeravatar
__blackjack__
User
Beiträge: 13111
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@anhu42: Da ist jetzt die Frage warum `sys.flags.no_site` diesen Wert hat, denn das ist nicht normal:

Code: Alles auswählen

In [159]: import sys                                                            

In [160]: sys.flags.no_site                                                     
Out[160]: 0

In [161]: sys.flags.no_user_site                                                
Out[161]: 0
Wie startest Du den Interpreter denn? Wenn da eine Option ``-S`` dabei ist: die wäre Schuld. Und dann wäre die Frage warum die für den Aufruf verwendet wird.

Das `sys.quit()` nicht funktioniert ist klar, die Funktion gibt es nicht.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

anhu42 hat geschrieben: Freitag 10. Juni 2022, 06:09 import site print (site)
ergibt
<module 'site' from 'C:\\temp\\python\\python37.zip\\site.pyc>
Und dieser Pfad ist auch ungewöhnlich. Hast du Python gar nicht installiert, sondern irgendwie nur aus dem Archiv extrahiert? Aus welcher Quelle hast du es bezogen? Läuft das innerhalb einer Entwicklungsumgebung oder startest du es direkt von der Kommandozeile (cmd.exe)?
Benutzeravatar
DeaD_EyE
User
Beiträge: 1021
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Vielleicht ist diese Version über den Windows-App-Store installiert worden.

Jedenfalls habe ich mal meine Win10-VM gestartet und folgenden Code mit Python 3.10, 3.9, 3.7 getestet:

Code: Alles auswählen

exit(1)
Bei den getesteten Versionen gab es keine Exception.

Code: Alles auswählen

py -3.10 test.py
py -3.9 test.py
py -3.7 test.py
Python aus dem Windows-App-Store habe ich nicht getestet, da man sich dann bei MS anmelden muss.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
anhu42
User
Beiträge: 4
Registriert: Donnerstag 2. Juni 2022, 16:30

Hallo,

ich habe von python.org die Version "Windows embeddable package" heruntergeladen und alles entpackt. Ich werde es Mal mit einer "richtigen" Installation probieren.
Viele Grüße
Benutzeravatar
__blackjack__
User
Beiträge: 13111
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Ich habe gerade Gewaltfantasien. Wenn man sich die Donwload-Optionen auf Python.org für Windows anschaut, dann sind die beiden „embeddable“-Varianten die beiden ersten in den Listen, und die normalen Installer die beiden letzten. Und keine Erklärung/Warnung/Hinweis, dass normale Nutzer nicht die „embeddable“-Variante wollen, sondern den Installer. Möchte nicht wissen wie viele Leute darauf reinfallen. Insbesondere neue Benutzer. 🤦
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten