解决使用pyinstaller打包报错: RecursionError: maximum recursion depth exceeded

问题
今天使用pyinstaller把程序打包exe,出现了以下错误


 File "d:\programdata\anaconda3\lib\ast.py", line 253, in visit
    return visitor(node)
  File "d:\programdata\anaconda3\lib\ast.py", line 261, in generic_visit
    self.visit(item)
  File "d:\programdata\anaconda3\lib\ast.py", line 253, in visit
    return visitor(node)
  File "d:\programdata\anaconda3\lib\ast.py", line 263, in generic_visit
    self.visit(value)
  File "d:\programdata\anaconda3\lib\ast.py", line 253, in visit
    return visitor(node)
RecursionError: maximum recursion depth exceeded

查询得知,ast 模块帮助 Python 程序处理 Python 语法的抽象语法树。抽象语法或许会随着 Python 的更新发布而改变;该模块能够帮助理解当前语法在编程层面的样貌。
也就是ast这个模块自身调用太多次递归,超出了python默认递归的深度,默认深度1000

解决办法

1.执行

pyinstaller -F *.py 

这一步肯定会报上述错误,但是会产生一个*.spec文件

2.在*.spec文件中增加两行(添加在原文件第二行),对递归深度进行设置:

import sys
sys.setrecursionlimit(100000)

3.执行

pyinstaller *.spec

你可能感兴趣的:(python)