py2exe: maximum recursion depth exceeded

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
Goodi

Samstag 31. Januar 2004, 13:00

Hallo,

ich wollte gerade mein Script mit py2exe kompilieren (was ich übrigens schon häufiger gemacht habe), doch jetzt bekomme ich diesen Fehler:

Code: Alles auswählen

  running py2exe
  *** searching for required modules ***
  File "C:\Python23\lib\modulefinder.py", line 285, in load_module
    self.scan_code(co, m)
  File "C:\Python23\lib\modulefinder.py", line 342, in scan_code
    self._safe_import_hook(name, m, fromlist)
  File "C:\Python23\lib\modulefinder.py", line 300, in _safe_import_hook
    self.import_hook(name, caller)
  File "C:\Python23\lib\modulefinder.py", line 124, in import_hook
    q, tail = self.find_head_package(parent, name)
  File "C:\Python23\lib\modulefinder.py", line 166, in find_head_package
    q = self.import_module(head, qname, parent)
  [diese Fehlermeldungen kamen ein paar hundert Mal, abgekürzt)
  File "C:\Python23\lib\modulefinder.py", line 390, in add_module
    self.modules[fqname] = m = Module(fqname)
RuntimeError: maximum recursion depth exceeded
Wüsste jemand woran das liegt? Wenn ich mein Script normal ausführe, funktioniert es problemlos.

Goodi
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Samstag 31. Januar 2004, 13:36

Hi Goodi,

da scheint sich modulefinder in eine Endlosrekursion zu verlaufen.
Hast Du in deinem Script ein Modul A, das ein Modul B importiert, das seinerseits Modul A importiert , oder das das script importiert?


Gruß

Dookie
Goodi

Samstag 31. Januar 2004, 13:45

Danke für die Antwort, nein, dies sind alle Module die ich brauche:

Code: Alles auswählen

import irclib
import urllib
import socket
import string
import time
import thread
import random
import os
import sys
irclib.py benötigt folgende Module:

Code: Alles auswählen

import bisect
import re
import select
import socket
import string
import sys
import time
import types
Soll ich socket, string, sys und time aus irclib.py rausschneiden?
Wundert mich, weil es in einem anderen Projekt problemlos funktioniert hat.

Goodi
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Samstag 31. Januar 2004, 14:55

Ich würde mal ein script, nur mit den import-statements erstellen, und das mal durch py2exe jagen. Wenn dann auch der Fehler kommt, kannst Du ein Modul nach dem anderen auskommentieren, bis es klappt, das letzte ist dann der Missetäter. Eventuell hilft auch eine Umstellung der Importreihenfolge.

string braucht man eigentlich nicht importieren, da alle Funktionen aus dem Stringmodul in den Strings selber schon als Methoden verfügbar sind.


Gruß

Dookie
Goodi

Samstag 31. Januar 2004, 15:03

Das funktioniert problemlos, nur, dass er mir jetzt keine .exe erstellt.
*seufz*
Goodi

Samstag 31. Januar 2004, 16:22

So, habe die alte py2exe-Version aufgespielt und alles läuft problemlos. Danke trotzdem!
Antworten