“Se excedió la profundidad máxima de recursión” al empaquetar el archivo py con py2exe

El py2exe funcionó bastante bien en el mismo archivo py hace varios meses. Pero cuando lo volví a intentar hoy, falló al informar un “RuntimeError: se excedió la profundidad máxima de recursión“. Conseguí una carpeta “dist” vacía como resultado. El archivo Py funciona normalmente, simplemente no puede ser empaquetado. Supongo que hay algo mal con los módulos importados en el archivo py. Pero no puedo entenderlo exactamente. ¿Alguien sabe la solución?

La parte inicial de mi archivo py es :

import xlrd import wx import wx.lib.filebrowsebutton as filebrowse from scipy.optimize import fsolve import math import threading from sympy import Symbol from sympy import solve 

Y las últimas varias líneas de la ventana cmd son:

 File "D:\Python27\lib\site-packages\py2exe\mf.py", line 332, in _safe_import_hook self.import_hook(name, caller, level=level) File "D:\Python27\lib\site-packages\py2exe\mf.py", line 719, in import_hook return Base.import_hook(self,name,caller,fromlist,level) File "D:\Python27\lib\site-packages\py2exe\mf.py", line 137, in import_hook m = self.load_tail(q, tail) File "D:\Python27\lib\site-packages\py2exe\mf.py", line 214, in load_tail m = self.import_module(head, mname, m) File "D:\Python27\lib\site-packages\py2exe\mf.py", line 724, in import_module r = Base.import_module(self,partnam,fqname,parent) File "D:\Python27\lib\site-packages\py2exe\mf.py", line 284, in import_module m = self.load_module(fqname, fp, pathname, stuff) File "D:\Python27\lib\site-packages\py2exe\mf.py", line 730, in load_module r = Base.load_module(self, fqname, fp, pathname, (suffix, mode, typ)) File "D:\Python27\lib\site-packages\py2exe\mf.py", line 314, in load_module self.scan_code(co, m) File "D:\Python27\lib\site-packages\py2exe\mf.py", line 423, in scan_code self._safe_import_hook(name, m, fromlist, level=level) File "D:\Python27\lib\site-packages\py2exe\mf.py", line 332, in _safe_import_hook self.import_hook(name, caller, level=level) File "D:\Python27\lib\site-packages\py2exe\mf.py", line 719, in import_hook return Base.import_hook(self,name,caller,fromlist,level) File "D:\Python27\lib\site-packages\py2exe\mf.py", line 134, in import_hook self.msg(3, "import_hook", name, caller, fromlist, level) RuntimeError: maximum recursion depth exceeded D:\Python27\py2exetemp>pause 

Intentaría boost el límite de profundidad de recursión. Inserte al comienzo de su archivo:

 import sys sys.setrecursionlimit(5000) 

Este error también puede ocurrir cuando tiene Jason path.py instalado como se describe aquí: http://www.py2exe.org/index.cgi/PathModul . La solución de esta página es

Solo renombrar

 site-packages/path.py to site-packages/jpath.py 

y asegúrese también de cambiar sus importaciones a

 import jpath 

Funciona para Pyinstaller

Crear un archivo de especificaciones

 pyi-makespec options name.py 

Modifique esta especificación agregando al inicio del archivo.

 import sys sys.setrecursionlimit(5000) # or more 

Construye el archivo ejecutable

 pyi options name.spec