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

PyInstaller打包PyQt5程序报错:缺失依赖库及隐藏导入问题求助

PyQt5程序PyInstaller打包exe报错及警告解决方法

我用PyQt5开发程序,通过PyInstaller打包为exe文件后运行报错。重装PyInstaller后,打包过程出现以下警告:

95114 WARNING: No django root directory could be found!
103900 WARNING: Hidden import "django.db.backends.__pycache__.base" not found!
107726 WARNING: Hidden import "importlib_resources.trees" not found!
117667 WARNING: Hidden import "django.db.backends.oracle.compiler" not found!
123478 WARNING: get_package_paths - package pywin32_system32 has multiple paths (['C:\Users\wonjong\AppData\Roaming\Python\Python39\site-packages\pywin32_system32', 'C:\Users\wonjong\anaconda3\envs\geum\lib\site-packages\pywin32_system32']); returning only first one!
137583 WARNING: Library not found: could not resolve 'sycl6.dll', dependency of 'C:\Users\wonjong\anaconda3\envs\geum\Library\bin\omptarget.sycl.wrap.dll'.
137584 WARNING: Library not found: could not resolve 'pgc.dll', dependency of 'C:\Users\wonjong\anaconda3\envs\geum\Library\bin\mkl_pgi_thread.2.dll'.
137584 WARNING: Library not found: could not resolve 'pgf90.dll', dependency of 'C:\Users\wonjong\anaconda3\envs\geum\Library\bin\mkl_pgi_thread.2.dll'.
137585 WARNING: Library not found: could not resolve 'pgmath.dll', dependency of 'C:\Users\wonjong\anaconda3\envs\geum\Library\bin\mkl_pgi_thread.2.dll'.
137585 WARNING: Library not found: could not resolve 'msmpi.dll', dependency of 'C:\Users\wonjong\anaconda3\envs\geum\Library\bin\mkl_blacs_msmpi_lp64.2.dll'.
137586 WARNING: Library not found: could not resolve 'msmpi.dll', dependency of 'C:\Users\wonjong\anaconda3\envs\geum\Library\bin\mkl_blacs_msmpi_ilp64.2.dll'.

试过添加hiddenimport、升级PyInstaller、为报错路径加钩子等方法均无效,以下是针对性解决方案:

  • 创建纯净虚拟环境,隔离冗余依赖
    当前Anaconda环境混入了Django、MKL等无关依赖,导致PyInstaller误检测。用venv创建只包含PyQt5和PyInstaller的纯净环境:

    python -m venv pyqt_env
    # Windows激活环境
    pyqt_env\Scripts\activate
    # 仅安装必需包
    pip install pyqt5 pyinstaller
    

    将代码复制到该环境重新打包,避免无关依赖干扰。

  • 排除无关模块,消除警告

    1. Django相关警告:若程序未使用Django,打包时直接排除该模块:
      pyinstaller --exclude-module django your_script.py
      
    2. MKL相关DLL警告:若程序不依赖科学计算库,排除MKL模块:
      pyinstaller --exclude-module mkl your_script.py
      
    3. pywin32多路径警告:删除其中一个路径下的pywin32_system32包,或打包时指定优先路径:
      pyinstaller --paths "C:\Users\wonjong\anaconda3\envs\geum\lib\site-packages\pywin32_system32" your_script.py
      
  • 用.spec文件精细控制打包配置
    先生成spec文件,手动编辑后打包:

    pyinstaller --name your_app your_script.py
    

    打开your_app.spec,修改以下配置:

    • 在excludes中添加无关模块:excludes=['django', 'mkl']
    • 仅在hiddenimports中添加PyQt5必需模块(如PyQt5.QtWidgets)
    • 若必须依赖特定DLL,通过binaries手动指定:
      binaries=[('C:\\Users\\wonjong\\anaconda3\\envs\\geum\\Library\\bin\\msmpi.dll', '.')]
      

    最后用spec文件打包:pyinstaller your_app.spec

  • 修改PyInstaller钩子,避免误引入
    找到虚拟环境下PyInstaller的钩子目录(pyqt_env\Lib\site-packages\PyInstaller\hooks),删除或重命名hook-django.py等无关钩子文件,阻止PyInstaller自动检测引入这些模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:03:42