“maximum recursion depth exceeded” while packaging py file with py2exe

自闭症网瘾萝莉.ら 提交于 2019-12-01 04:04:26

问题


The py2exe worked quite well on the same py file several months ago. But when I tried it again today it failed by reporting a “RuntimeError: maximum recursion depth exceeded”. I got an empty “dist” folder as a result. The Py file works normally, it just can't be packaged. I guess there is something wrong with the imported modules in the py file. But I can not figure it out exactly. Does any one know the solution?

The begining part of my py file is:

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

And the last several lines of the cmd window is:

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

回答1:


I'd try to increase recursion depth limit. Insert at the beginning of your file:

import sys
sys.setrecursionlimit(5000)



回答2:


This error can also occur when you have Jason path.py installed as described here: http://www.py2exe.org/index.cgi/PathModul. The solution from this page is to

Just rename

site-packages/path.py to

site-packages/jpath.py 

and make sure also to toggle your imports to

import jpath



回答3:


It works for Pyinstaller

Create a spec file

pyi-makespec options name.py 

Modify this spec by adding to start of file

import sys
sys.setrecursionlimit(5000) # or more

Build the executable file

pyi options name.spec 


来源:https://stackoverflow.com/questions/29211840/maximum-recursion-depth-exceeded-while-packaging-py-file-with-py2exe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!