Seite 1 von 1
RuntimeError: maximum recursion depth exceeded while calling
Verfasst: Sonntag 13. März 2011, 18:55
von Trubinial Guru
Hi Alle, ich hab mal wieder ein Problem, welches ich einfach nicht schaffe zu lösen:
Undzwar rufe ich ein Modul auf, welches in eine Datei schreiben soll. Das is ja nicht besonders schwer und hat auch bis heute kein Problem gemacht, doch jetzt kommt folgende Fehlermeldung:
dat = open('configurations.config.txt', "w")
RuntimeError: maximum recursion depth exceeded while calling a Python object
t
Ich hab jetzt seit zwei Stunden versucht das Problem zu lösen aber es will nicht. Das Problem tritt sogar auf, wenn ich den Code so vereinfache:
Code: Alles auswählen
def write_setting():
dat = open('configurations.config.txt', "w")
dat.close()
Außerdem habe ich versucht den gleichen Code in meinem Hauptprogramm auszuführen, was wunderbar funktioniert hat.
Kann mir jemand einen Tipp geben?
Re: RuntimeError: maximum recursion depth exceeded while cal
Verfasst: Sonntag 13. März 2011, 19:06
von Darii
Guck mal nach, was genau open ist. Vermutlich hast du das irgendwo überschrieben.
Trubinial Guru hat geschrieben:Ich hab jetzt seit zwei Stunden versucht das Problem zu lösen aber es will nicht. Das Problem tritt sogar auf, wenn ich den Code so vereinfache:
Code: Alles auswählen
def write_setting():
dat = open('configurations.config.txt', "w")
dat.close()
Da fehlt aber noch der Rest des codes. Wenn du schon ein Beispiel postest dann bitte alles und vereinfacht.
Re: RuntimeError: maximum recursion depth exceeded while cal
Verfasst: Sonntag 13. März 2011, 19:06
von /me
Trubinial Guru hat geschrieben: dat = open('configurations.config.txt', "w")
RuntimeError: maximum recursion depth exceeded while calling a Python object
t
Ich vermute, dass du irgendwo
open überschrieben hast. Das passiert gerne bei Sternchen-Importen, also bei bösen Konstrukten wie
Was sagt denn ein
?
Re: RuntimeError: maximum recursion depth exceeded while cal
Verfasst: Sonntag 13. März 2011, 19:15
von Trubinial Guru
Danke für die Antworten erstmal
Die Ausgabe von print open ist: <built-in function open>
Sternchen import hab ich leider nicht benutzt - daran sollte es also nicht liegen.
Da fehlt aber noch der Rest des codes. Wenn du schon ein Beispiel postest dann bitte alles und vereinfacht.
Der Code steht gerade genau so in meinem Programm, den Rest zu posten wäre glaub eher Kontraproduktiv.
Re: RuntimeError: maximum recursion depth exceeded while cal
Verfasst: Sonntag 13. März 2011, 19:16
von BlackJack
@Trubinial Guru: Ausserdem ist der Traceback nicht komlett. Die Zeilen davor verraten ja was wo aufgerufen wurde.
Wo hast Du das ``print open`` hingeschrieben? Direkt vor den Aufruf der fehl schlägt?
Re: RuntimeError: maximum recursion depth exceeded while cal
Verfasst: Sonntag 13. März 2011, 19:24
von Trubinial Guru
File "gui_starter.py", line 391, in update_labels
self.update_labels()
Dieser Teil wiederholt sich öfters, dann kommt
File "gui_starter.py", line 390, in update_labels
self.default_settings()
File "gui_starter.py", line 209, in default_settings
configurations.configurations.write_setting(new_settings)
File "/home/jonathan/Desktop/Beispielprogramm/Test/configurations/configurations.py", line 19, in write_setting
print open
RuntimeError: maximum recursion depth exceeded while getting the str of an object
In update_labels wird default_settings() aufgerufen, von wo aus das modul configurations geladen wird.
Das alles zu posten wäre unmöglich, weil der code viel zu lang wäre.
Ach und das print open wurde direkt davor geschrieben.
Re: RuntimeError: maximum recursion depth exceeded while cal
Verfasst: Sonntag 13. März 2011, 19:49
von BlackJack
@Trubinial Guru: Na dann liegt der Fehler ja aber nicht in `open()` sondern in der Methode die offenbar immer wieder rekursiv aufgerufen wird. In `update_labels()` scheinst Du irgend etwas zu machen was wieder zum rekursiven Aufruf von `update_labels()` führt.
Re: RuntimeError: maximum recursion depth exceeded while cal
Verfasst: Sonntag 13. März 2011, 21:08
von Trubinial Guru
Vielen Dank! Ich hab den Fehler gefunden. Er war wie du vermutest hast in update_labels ich hatte zwei Fehler hintereinander, die dann zu dem genannten problem geführt hatten. Vielen Dank!