Python to EXE - Fenster offen lassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Train
User
Beiträge: 6
Registriert: Donnerstag 20. August 2015, 19:16

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
Let's learn more about Python!
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
Train
User
Beiträge: 6
Registriert: Donnerstag 20. August 2015, 19:16

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?? ._.
Let's learn more about Python!
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Wenn du es aus der Konsole startest geht sie zu?! Oder nicht? Was ist die Fehlermeldung.
Train
User
Beiträge: 6
Registriert: Donnerstag 20. August 2015, 19:16

Wenn ich es von der Konsole aus starte, schließt sie sich genauso und es kommt keine Fehlermeldung
Let's learn more about Python!
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.
Train
User
Beiträge: 6
Registriert: Donnerstag 20. August 2015, 19:16

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! :)
Let's learn more about Python!
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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)


GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Um .. da ging wohl was bei der Formatierung kaputt? :)

Das `click.prompt` kommt von click: http://click.pocoo.org/
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ja, copy & paste mit Handy.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten