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

使用PyInstaller打包PyQt应用时触发AssertionError问题求助

解决PyInstaller打包PyQt5应用时的AssertionError问题

步骤1:清理重复依赖包

这个断言错误的核心原因是PyInstaller检测到某个模块被多个Python发行版包同时包含,无法确定依赖归属。先清理可能重复安装的相关库:

  • 卸载冲突包后重新安装,执行以下命令:
pip uninstall -y lxml python-docx PyQt5 sip
pip install lxml python-docx PyQt5 sip

步骤2:调整打包命令

打包时手动指定sip为隐藏导入,同时禁用PyInstaller的依赖分发检测,绕过断言错误:

pyinstaller --onefile --hidden-import=sip --disable-dependency-resolution app.py

步骤3:修改spec文件(命令行无效时用)

如果上述命令没解决问题,打开生成的app.spec文件,修改Analysis部分,添加隐藏导入并关闭依赖解析:

a = Analysis(
    ['app.py'],
    pathex=['C:\\Users\\m14\\Desktop\\PythonApp'],
    binaries=[],
    datas=[],
    hiddenimports=['sip'],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=None,
    noarchive=False,
    disable_dependency_resolution=True  # 新增此行关闭依赖解析
)

然后用修改后的spec文件重新打包:

pyinstaller app.spec

额外建议

  • 尽量使用虚拟环境打包,避免全局Python环境的包冲突
  • 如果Python3.7和PyInstaller5.13.0存在兼容性问题,可尝试降级PyInstaller:
pip install pyinstaller==5.9.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 05:25:10