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

使用PyInstaller打包Python3.5项目时触发six.moves递归深度超限错误

解决PyInstaller打包时six.moves触发的最大递归深度错误

我之前也碰到过PyInstaller处理six.moves模块时的递归深度问题,尤其是在Python3.5环境下,给你几个可行的解决办法:

1. 临时提升Python递归深度阈值

在你的.spec文件最顶部添加代码,手动调高递归限制,PyInstaller在处理模块导入时就不容易触发阈值了:

import sys
sys.setrecursionlimit(5000)  # 可以根据情况调整到8000左右,不要设置得过于极端

# 原有的spec代码
block_cipher = None
a = Analysis(['SegTool.py'],
             pathex=['consts.py', 'FetalMRI_about.py', 'FetalMRI_mainwindow.py', 'FetalMRI_workspace.py', 'image_label.py', 'main_window.py', 'scan_file.py', 'segment3d_itk.py', 'Shapes.py', 'workspace.py', 'C:\\Users\\Keren Meron\\Documents\\School Work\\Fetal MRI\\FetalSegBrainTool'],
             binaries=[],
             datas=[],
             # ... 保留你原有的其他参数
             )

2. 手动指定six.moves为隐藏导入

PyInstaller自动扫描依赖时,对six.moves的动态导入逻辑处理容易出问题,我们直接把它加入hiddenimports,让PyInstaller明确处理这个模块:
修改Analysis部分的参数,添加hiddenimports=['six.moves']:

a = Analysis(['SegTool.py'],
             pathex=['consts.py', 'FetalMRI_about.py', 'FetalMRI_mainwindow.py', 'FetalMRI_workspace.py', 'image_label.py', 'main_window.py', 'scan_file.py', 'segment3d_itk.py', 'Shapes.py', 'workspace.py', 'C:\\Users\\Keren Meron\\Documents\\School Work\\Fetal MRI\\FetalSegBrainTool'],
             binaries=[],
             datas=[],
             hiddenimports=['six.moves'],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

3. 升级到兼容Python3.5的PyInstaller版本

如果你用的是较旧的PyInstaller版本,可能存在six.moves处理的bug。Python3.5对应的最后一个稳定PyInstaller版本是3.6,你可以执行以下命令升级:

pip install pyinstaller==3.6

升级完成后,用修改后的.spec文件重新打包尝试。

4. 最后手段:禁用six的自动hook

如果前面的方法都无效,可以尝试排除PyInstaller对six的默认hook,手动管理依赖。打包时添加命令行参数:

pyinstaller --exclude-hook=six SegTool.spec

不过这个方法需要你手动确认所有six相关的依赖都被正确导入,所以优先尝试前面的方案。

内容的提问来源于stack exchange,提问作者Keren Meron

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:20:16