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

使用PyInstaller编译PyQt5应用失败:特定版本组合下问题未解决

解决PyInstaller打包PyQt5时api-ms-win-crt-runtime-l1-1-0.dll缺失的问题

我之前也碰到过和你完全一样的情况——用Python 3.6.4、PyQt 5.10.1和PyInstaller 3.3.1打包时,弹出一堆类似这样的警告:

WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of C:\users\justin\appdata\local\programs\python\python36-32\lib\site-packages\PyQt5\Qt\plugins\bearer\qgenericbearer.dll

最后生成的exe根本无法运行。你之前把Python目录加到PATH的思路没错,但针对这个dll缺失问题,还需要这些更针对性的处理:

  • 手动补充系统DLL到打包目录
    这个api-ms-win-crt-runtime-l1-1-0.dll是Windows系统的通用运行时库,32位Python对应的话,你可以去C:\Windows\SysWOW64目录里找到它(64位系统中,System32存放64位dll,SysWOW64存放32位dll)。把这个dll复制到你的打包脚本所在的文件夹,然后重新运行PyInstaller打包命令,通常就能解决依赖找不到的问题。

  • 升级PyInstaller到兼容版本
    PyInstaller 3.3.1对Python 3.6和PyQt5.10的支持确实有不少bug,建议你升级到适配性更好的3.6版本(这个版本专门针对Python3.6做过优化):

    pip install pyinstaller==3.6
    

    升级后再尝试打包,很多自动依赖查找的问题都会被修复。

  • 修改spec文件手动指定依赖路径
    如果自动查找还是不行,就手动编辑生成的spec文件来强制指定依赖:

    1. 先生成spec文件:pyinstaller --name your_app your_script.py
    2. 打开your_app.spec,找到pathex和datas字段,把PyQt5插件目录和系统dll目录加进去:
      pathex=['C:\\users\\justin\\appdata\\local\\programs\\python\\python36-32\\lib\\site-packages\\PyQt5\\Qt\\plugins', 'C:\\Windows\\SysWOW64']
      datas=[('C:\\users\\justin\\appdata\\local\\programs\\python\\python36-32\\lib\\site-packages\\PyQt5\\Qt\\plugins\\bearer\\qgenericbearer.dll', 'bearer')]
      
    3. 最后用spec文件打包:pyinstaller your_app.spec
  • 修复系统VC++运行时库
    这个dll属于Visual C++ Redistributable for Visual Studio 2015-2019,如果你的系统里没装或者版本不匹配,也会导致找不到。下载对应你Python位数(32位)的VC++运行时安装包,安装完成后再重新打包试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:04:17