Seite 1 von 1

cmd fenster nach py2exe offen lassen

Verfasst: Donnerstag 15. Februar 2007, 00:55
von sorgenlos
Hallo Leute ich hab mal ne frage,

nach dem ich z.B. ein einfaches HelloWorld Programm mit py2exe in eine executable konvertiert hab und diese dann ausführe, öffnet sich das CMD-Fenster und schließt sich sofort.

Meine Frage ist, welcher Befehl nochmal das schließen unterdrückt, ich find diesen Befehl auch nicht in der Wiki und anderen Büchern.

Verfasst: Donnerstag 15. Februar 2007, 07:33
von Bastl
Bin mir nicht sicher aber bei mir funktioiert das mit

Code: Alles auswählen

a = raw_input("Zum Beenden Taste drücken")
dann müsste es eigentlich warten bis eine Taste gedrückt wird.

Verfasst: Donnerstag 15. Februar 2007, 10:25
von jens
Die Zuweisung "a =" kannst du auch weglassen ;)

Re: cmd fenster nach py2exe offen lassen

Verfasst: Donnerstag 15. Februar 2007, 15:00
von Leonidas
sorgenlos hat geschrieben:Meine Frage ist, welcher Befehl nochmal das schließen unterdrückt, ich find diesen Befehl auch nicht in der Wiki und anderen Büchern.
Ich würde eher die Konsole aufmachen und dann das Programm ausführen. So bleibt die Konsole auch offen, falls es Tracebacks gibt.

Verfasst: Donnerstag 15. Februar 2007, 15:02
von jens
Zweite Möglichkeit wäre eine Batch Datei:

Code: Alles auswählen

python.exe MeinProgramm.py
pause
;)

Verfasst: Donnerstag 15. Februar 2007, 15:04
von Leonidas
Sowohl ``raw_input()`` als auch die Nutzung einer Batch-Datei empfinde ich als eher unschöne Hacks.

Verfasst: Donnerstag 15. Februar 2007, 16:38
von nkoehring
Ich kann mich da nur dem Leonidas anschließen... aber ich arbeite eh nur in Konsolen, von daher weiß ich ihre Funktionalitaet auch zu schaetzen (ja natuerlich nicht unter Windoze)

Verfasst: Donnerstag 15. Februar 2007, 21:29
von sorgenlos
Dankeschön,

raw_input("Zum Beenden Taste drücken etc")

hat tadellos funktioniert

Verfasst: Donnerstag 15. Februar 2007, 21:48
von cime
im os modul gibt es einen funktion system ... damit kanst du befehle ausfuehren, wie du sie normalerweise in eine konsole schreibst ... ergo koenntest du os.system("pause") aufrufen und es muesste auch klappen

Verfasst: Donnerstag 15. Februar 2007, 22:07
von BlackJack
Die `raw_input()`-Lösung funktioniert aber auf allen Systemen. ``pause`` gibt's nicht überall.

Verfasst: Donnerstag 15. Februar 2007, 22:09
von Leonidas
cime hat geschrieben:ergo koenntest du os.system("pause") aufrufen und es muesste auch klappen
Und es kracht unter allen nicht-Windows Systemen. DIe Lösung ist sogar noch schlechter als die vorherigen.

Nicht wundern, dass ich alle Lösungen so niedermache, aber wenn man überlegt was das alles für Hässliche Hacks sind im Vergleich zum offenhalten der Konsole, dann ist das nicht sonderlich verwunderlich.

Stellen wir mal ein Ranking auf, geordnet nach Sauberkeit der Lösung:
  1. Konsole offenhalten
  2. lange, lange nichts
  3. Batch-Datei
  4. wieder längere Zeit nichts
  5. ``raw_input()``
  6. ``os.system('pause')``

Re: cmd fenster nach py2exe offen lassen

Verfasst: Freitag 13. Juli 2012, 08:57
von BlackPython
Bitte schreibt jetzt nicht "Schau aufs Datum" oder so. Ich weiss selber dass das Thema von 2007 ist.
Mir ist das Thema gerade aufgefallen und ich hätte eine eigene Lösung
Für alle dies interessiert:

Code: Alles auswählen

while True:
    pass

Re: cmd fenster nach py2exe offen lassen

Verfasst: Freitag 13. Juli 2012, 09:11
von sparrow
BlackPython hat geschrieben: Für alle dies interessiert:

Code: Alles auswählen

while True:
    pass
1. Schau aufs Datum. Das grenzt ja schon an Leichenflederei ;)

2. Ist das die aller aller aller aller schlimmste Lösung. Da rennt das Programm in einer Endlossschleife und verbrennt Prozessorzeit um... nichts zu tun. Außerdem ist es dann eher schwierig das Programm "normal" zu beenden, sondern mann muss es dann per KeyboardInterrupt in den hoffentlich erfolgenden Tod schicken.

Also vergiss das, das hat mit der "Lösung" des "Problems" in diesem Thread nichts zu tun.

Re: cmd fenster nach py2exe offen lassen

Verfasst: Freitag 13. Juli 2012, 20:03
von Leonidas
Und wenn das Programm crasht, bevor es zu der Schleife kommt, dann geht das Fenster zu ohne dass du den Fehler gesehen hast. Wo ist das bitte eine Lösung, die scheitert wenn sie benötigt wird?!

Re: cmd fenster nach py2exe offen lassen

Verfasst: Samstag 14. Juli 2012, 00:16
von jerch
Für Schwierigkeiten unter Windows:
- Konsolenfenster mit der Maus linke Taste gedrückt in der Kopfzeile festhalten, solange das Programm läuft und bei Programmabbruch zeitgleich ALT+F4 drücken, um das normale Schliessen des Fensters zu antagonisieren (analog zu minus * minus ...), funktioniert wirklich gut, braucht allerdings Erfahrung und Routine seitens des Benutzers, um den korrekten Zeitpunkt zu treffen. Ist aber nix, was nicht mit ein bisschen Übung zu Beheben wäre ;)

Re: cmd fenster nach py2exe offen lassen

Verfasst: Montag 16. Juli 2012, 09:24
von JonasR
BlackPython schon mal auf die CPU Auslastung bei deiner Lösung geschaut? :D

Re:

Verfasst: Samstag 13. Oktober 2012, 16:40
von Noobi
Bastl hat geschrieben:Bin mir nicht sicher aber bei mir funktioiert das mit

Code: Alles auswählen

a = raw_input("Zum Beenden Taste drücken")
dann müsste es eigentlich warten bis eine Taste gedrückt wird.
Hey, ich habe das probiert aber bei mir geht es leider nicht. Also einfach am Ende des Codes noch das in eine eigene Zeile eingeben oder?
a = raw_input("Zum Beenden Taste drücken")

Oder muss man in die ("") etwas anderes reinschreiben?

Re: cmd fenster nach py2exe offen lassen

Verfasst: Samstag 13. Oktober 2012, 16:56
von Leonidas
Die "Lösung" mit ``raw_input`` ist eine eher schlechte Lösung, oder eher: keine sinnvolle Lösung. Einfach das Py2exe-Programm aus der Kommandozeile starten ist besser als irgendwas mit ``raw_input`` zusammenzupfuschen.