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
Verlassen des Interpreters
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.
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.
`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`?
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.
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.
- __blackjack__
- User
- Beiträge: 13236
- 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:
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.
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
Das `sys.quit()` nicht funktioniert ist klar, die Funktion gibt es nicht.
Please call it what it is: copyright infringement, not piracy. Piracy takes place in international waters, and involves one or more of theft, murder, rape and kidnapping. Making an unauthorized copy of a piece of software is not piracy, it is an infringement of a government-granted monopoly.
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)?
- DeaD_EyE
- User
- Beiträge: 1037
- 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:
Bei den getesteten Versionen gab es keine Exception.
Python aus dem Windows-App-Store habe ich nicht getestet, da man sich dann bei MS anmelden muss.
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)
Code: Alles auswählen
py -3.10 test.py
py -3.9 test.py
py -3.7 test.py
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
- __blackjack__
- User
- Beiträge: 13236
- 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.
Please call it what it is: copyright infringement, not piracy. Piracy takes place in international waters, and involves one or more of theft, murder, rape and kidnapping. Making an unauthorized copy of a piece of software is not piracy, it is an infringement of a government-granted monopoly.