You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller开发版仍出现递归深度超限错误求助(Python3.6.4)

解决PyInstaller在Python 3.6.4下的递归深度超限问题

我之前也碰到过一模一样的情况!在Python 3.6.x版本搭配PyInstaller的时候,递归深度超限的问题确实挺棘手的,哪怕装了最新开发版也可能踩坑。下面分享几个亲测有效的解决思路,你可以挨个试试:

  • 临时调整Python递归深度上限
    这是最直接的应急方案,你可以在自己的主脚本最顶部加入这段代码,把递归深度调高:

    import sys
    sys.setrecursionlimit(10000)  # 可根据实际情况调整,比如尝试20000
    

    注意别把数值调得太夸张,不然可能触发栈溢出崩溃,建议从10000开始测试,不行再逐步增加。

  • 给PyInstaller核心代码打递归补丁
    有时候问题出在PyInstaller自身的代码逻辑里,而非你的脚本。你可以找到PyInstaller安装目录下的utils/hooks/__init__.py文件,定位到get_module_attribute函数,在函数开头添加递归深度调整代码:

    import sys
    sys.setrecursionlimit(10000)
    

    保存修改后重新打包,不少开发者用这个方法解决了Python 3.6下的兼容问题。

  • 降级Python到3.5.x稳定版
    这是比较彻底的解决方案,因为Python 3.6的递归机制和3.5存在差异,PyInstaller在3.5版本下的兼容性表现更好。如果你的项目对3.6的特性依赖不高,可以考虑降级到Python 3.5.4这类稳定版本,再重新安装PyInstaller普通稳定版(无需开发版),大概率能彻底解决问题。

  • 排查自身代码的递归逻辑
    先排除是自己脚本的问题:单独运行你的Python脚本,看看是否会触发RecursionError。如果脚本本身运行正常,那才是PyInstaller的兼容问题;如果脚本本身就报错,那得先修复自己代码里的递归逻辑(比如不小心写了无限递归,或者第三方库的嵌套调用过多)。

内容的提问来源于stack exchange,提问作者Benjamin Levy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:37:53