Seite 1 von 1

Programm bricht nach Start sofort ab

Verfasst: Montag 5. September 2005, 17:27
von Gast
Hallo,

hab mir jetzt ein kleines Programm geschrieben. Ich habs kompiliert und hab jetzt eine .exe. Wenn ich es jedoch starte kann ich meine Eingabe noch machen, jedoch schließt sich danach sofort das "Eingabeaufforderungsfenster", was jedoch eigentlich gar nicht sein dürfte, da ich viele sleep Befehle drin hab.
Wenn ich es unter IDLE teste läufts jedenfalls einwandfrei.

:?:

Gibts vielleicht ne Möglichkeit die Eingabeaufforderung irgendwie anzuhalten nach Ablauf des Programmes?

Verfasst: Montag 5. September 2005, 17:42
von Mawilo
schreibe ein

Code: Alles auswählen

raw_input() 
unter das Programm und die Eingabeaufforderung schließt sich erst, wenn du Return drückst.

Verfasst: Dienstag 6. September 2005, 13:53
von Gast
Danke für die Antwort. Mein Problem besteht jedoch weiterhin. Mein Programm schließt sich schon eher, aus heiterem Himmel heraus. :(

Hier der Code:

Code: Alles auswählen

import time
import randomclient

AnzahlDurchlaeufe = input("Anzahl der Durchläufe = ")
Pause = input("Pause zwischen zwei Werten = ")

raw_input() #ein einfacher Haltepunkt um zu sehen bis wohin das Programm funktioniert.

AnzahlzuholenderZufallszahlen = AnzahlDurchlaeufe/8 + 1

raw_input() #ein einfacher Haltepunkt um zu sehen bis wohin das Programm funktioniert.

Zufallszahlen = randomclient.truerand(AnzahlzuholenderZufallszahlen, 'b')

raw_input() #ein einfacher Haltepunkt um zu sehen bis wohin das Programm funktioniert.
Nach dem vorletzten raw_input() schließt sich mein Programm von selber. Es müsste also in folgender Zeile der Fehler liegen:

Code: Alles auswählen

Zufallszahlen = randomclient.truerand(AnzahlzuholenderZufallszahlen, 'b')
Aber wo soll hier der Fehler sein? :?:
Ich habe die Funktion doch richtig angesprochen.
Jedenfall laut der Definition im Modul:

Code: Alles auswählen

# num is number of random numbers to fetch.
# format is b, o, d, or h for strings in that base
# format is n to return integers, or f for raw bytes.
# for all formats, except f, the data is returned as
# a list. bytes are returned as an unmolested string.

def truerand(num, fmt):
Gibt es vielleicht irgend so ne Möglichkeit, das Programm zeilenweise durchzugehen, ohne dass sich die Eingabeaufforderung gleich schließt? Und ja in IDLE hab ichs schon ausprobiert hier klappts ohne Probleme.
Ich kenns nur so von Pascal, dass ich da zeilenwiese compilieren konnte. :D

naja, wär dankbar für jede Hilfe

Edit (Leonidas): Code in Python-Tags gesetzt.

Verfasst: Dienstag 6. September 2005, 14:29
von jens
Ich denke es kommt zu einem Traceback und die Shell/Eingabeaufforderung schließt sich wieder, weil das Programm aus deren sicht beendet ist ;)

Also entweder du startest erstmal manuell eine Shell/Eingabeaufforderung und dann das Programm...

Einfacher geht's mit SciTE... Da kann man einfach F5 drücken und das Programm wird ausgeführt und man sieht links die Ausgaben, die man in aller ruhr bedrachten kann...
Dazu muß SciTE allerdings erstmal eingerichtet werden. Deswegen hab ich hier mal meine SciTE Einstellungen hinterlegt: http://www.pythonwiki.de/PythonDeForum/ ... ntegration

s. auch http://www.pythonwiki.de/PythonDeForum/ ... ba93a62497

Verfasst: Mittwoch 14. September 2005, 12:16
von jihi
Also nur so ein Gedanke:

Wenn du das in eine Exe datei compilierst, dann ist das Modul randomclient nicht mehr vorhanden, weil es ja nicht zu den Build ins gehört(oder?)

Wie das genau geht weiß ich auch nicht, aber es ging glaub ich :wink:

Verfasst: Mittwoch 14. September 2005, 15:37
von Leonidas
jihi hat geschrieben:Wenn du das in eine Exe datei compilierst, dann ist das Modul randomclient nicht mehr vorhanden, weil es ja nicht zu den Build ins gehört(oder?)
Normalerweise sollte py2exe das automatisch einbinden, aber wenn nicht, dann guck ins py2exe Wiki dort wird es beschreiben (z.B auf der Seite EncodingsAgain).

Verfasst: Mittwoch 14. September 2005, 15:44
von mitsuhiko
cmd.exe starten (unter Linux die bash)
und

Code: Alles auswählen

python /pfad/zu/meinem/programm/eingeben.py
und dann den debug output ansehen.