Seite 1 von 1

Python to EXE - Fenster offen lassen

Verfasst: Samstag 22. August 2015, 16:51
von Train
Hallo liebe Community :)

Ich hoffe dieser Forenbereich ist der richtige, wenn nicht verschiebt das Thema bitte, habe keinen passenderen Bereich gefunden, da es definitiv nicht unter GUI zählt.

Also ich habe ein Python-Programm geschrieben, was die Fakultät von Zahlen von 1 - 170 berechnet.

Hier der Code:

Code: Alles auswählen

print("Description: This program help's people to get the n! of numbers.\n" \
      "@author: Train\n" \
      "version: 1.0\n" \
      "------------------------------------------------------------")
print("Fakultätsberechnung!!! Tippe 0 ein um das Programm zu beenden.\n" \
	  "Zahlen \x81ber 170 werden vom Programm nicht ausgef\x81hrt.")
while True:
	zahl = int(input("Gib eine Zahl ein: "))
	if zahl == 0:
		print("Das Programm wird beendet.")
		break
	if zahl < 0:
		print("Negative Zahlen sind nicht erlaubt!")
		continue
	if zahl > 170:
		print("Das ist zu viel für den PC. Zahlen über 20 nicht erlaubt!")
		continue
	ergebnis = 1
	while zahl > 0:
		ergebnis = ergebnis * zahl
		zahl = zahl - 1
	print("Ergebnis: ", "%.4e" % ergebnis)
Dann habe ich die folgende setup.py geschrieben:

Code: Alles auswählen

from cx_Freeze import setup, Executable

setup(
    name = "Fakultaet" ,
    version = "1.0" ,
    description = "Berechnung der Fakultaet von Zahlen bis 170" ,
    executables = [Executable("Fakultaet.py")] ,
    )
Dann mit cx_Freeze das ganze erstellt. Soweit so gut. Nut leider, wenn ich die Konsolenanwendung ausführe, schließt sich das Fenster sofort wieder und ich konnte es auch nicht mit einem raw_input beheben.

Ich verwende Python 3.4

Danke im voraus Python-Community

---------------------
Gruß Train

Re: Python to EXE - Fenster offen lassen

Verfasst: Samstag 22. August 2015, 17:01
von cofi
Willkommen im Forum!

Der naechste Schritt sollte dann sein die _Konsolenanwendung_ richtig zu starten, naemlich aus einer existierender Konsole. Dann siehst du auch die auftretende Exception.

Re: Python to EXE - Fenster offen lassen

Verfasst: Samstag 22. August 2015, 17:19
von Train
Wenn ich sie aus der cmd.exe heraus starten will passiert das selbe.

Ich möchte es ja anderen zur Verfügung stellen, sodass sie einfach nur die exe öffnen müssen und das Programm verwenden können ohne weiteren Aufwand oder Verständnis vom Computer :D

MfG Train


EDIT: Kann mir denn wirklich keiner helfen?? ._.

Re: Python to EXE - Fenster offen lassen

Verfasst: Samstag 22. August 2015, 19:50
von cofi
Wenn du es aus der Konsole startest geht sie zu?! Oder nicht? Was ist die Fehlermeldung.

Re: Python to EXE - Fenster offen lassen

Verfasst: Samstag 22. August 2015, 20:31
von Train
Wenn ich es von der Konsole aus starte, schließt sie sich genauso und es kommt keine Fehlermeldung

Re: Python to EXE - Fenster offen lassen

Verfasst: Samstag 22. August 2015, 21:05
von BlackJack
@Train: Das kann nicht sein. Um die Eingabeaufforderung zu schliessen muss man die ja irgendwie zum Absturz bringen. Beschreib mal genau wie Du da vorgehst. Man öffnet erst die Eingabeaufforderung, dann wechselt man mit ``cd`` in das Verzeichnis wo das Programm liegt (sofern es nicht irgendwo im %PATH% liegt) und startet dann von dort aus das Programm. Das macht eigentlich keiner der keine Ahnung vom Computer hat. Damit verbietet es sich eigentlich überhaupt eine Konsolenanwendung zu schreiben wenn das Zielpublikum keine Ahnung hat.

Re: Python to EXE - Fenster offen lassen

Verfasst: Sonntag 23. August 2015, 12:05
von Train
Ok nein, ich habe einen Fehler gemacht beim öffnen in der cmd.exe

Also es funktioniert doch das Programm so zu starten, wie ihr es beschrieben habt.
Dann muss ich mir wahrscheinlich was anderes überlegen, um das für einen Anwender zu machen, sprich GUI.

Trotzdem danke für Eure Hilfe, ihr habt mich wieder ein Stück schlauer gemacht! :)

Re: Python to EXE - Fenster offen lassen

Verfasst: Sonntag 23. August 2015, 18:34
von jens
Deswegen hab ich in meinem Emulator eine 'Starter GUI' gebaut, siehe: https://github.com/jedie/DragonPy#start-dragonpy-1

Ich mache auch sowas:

Code: Alles auswählen



def confirm():
                # don't close the terminal window directly
                # important for windows users ;)
                click.prompt("Please press [ENTER] to exit", default="", show_default=False)
            atexit.register(confirm)


Re: Python to EXE - Fenster offen lassen

Verfasst: Sonntag 23. August 2015, 21:55
von cofi
Um .. da ging wohl was bei der Formatierung kaputt? :)

Das `click.prompt` kommt von click: http://click.pocoo.org/

Re: Python to EXE - Fenster offen lassen

Verfasst: Montag 24. August 2015, 05:54
von jens
Ja, copy & paste mit Handy.