qt打包生成exe_PyQt5打包运行: unable to find Qt5Core.dll on PATH 解决方案


一、背景

最近一个项目采用PyQt5 5.13.0 进行开发,经过打包成exe可以执行。 环境:Windows 10 + python 3.7 + PyQt5 5.13.0 + tensorflow 1.14.0等。但是在此之前运行时会有这么一个错误:

ImportError: unable to find Qt5Core.dll on PATH

e57a07ceec35d1beca7645f190531516.png

5.12.3 以及5.13.0好像都存在该问题:

26d78aff75852e6cf55962a90234b9d0.png

统一错误模板:

λ XXXXXX.exe
Traceback (most recent call last):
  File "xxxxxxui.py", line 4, in <module>
  File "c:usersremib.virtualenvsxxxxxxx-w7udp1ctlibsite-packagesPyInstallerloaderpyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packagesPyQt5__init__.py", line 41, in <module>
  File "site-packagesPyQt5__init__.py", line 33, in find_qt
ImportError: unable to find Qt5Core.dll on PATH
[12876] Failed to execute script ui
注意:有时候运行失败是闪退的,如需要查看错误信息,可以先打包成在控制台运行,然后通过cmd、power shell等执行.exe文件

二、本机运行报错及解决办法

在PyQt创建初始化前加入如下代码:

if hasattr(sys, 'frozen'):
    os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']

e276c7cbe75ec5bc263cca2794c9691f.png

三、在其他电脑上报错及解决办法

cf2604c00b8896c1465a2b55d2cb45ee.png

由于本人在此之前就用过PyQt5创建应用并解决了以上问题,但是最近的这个项目打包好发布后在相同运行环境下的机子又报错了,检查打包后项目的安装目录,发现文件是存在的:

b41ce038bcab31b37f9403c28d7376f3.png

经过一番测试与查找,发现打包后的PyQt5文件夹下,PyQt5/Qt/bin没有该文件。在Pyinstaller的GitHub项目下,issue有这么一项:

33ec5321e18571e5105c20708dba246c.png

即需要手动将缺少的文件复制到打包后的PyQt5/Qt/bin目录下。查看该目录,在打包时手动加入缺少的文件:

缺少文件情况

acf0c6e8bd067f66bdb7a2473392bac0.png
添加文件(可只添加缺少的文件,为防止其他PyQt的库又找不到,可以都复制进去(库文件来源于打包后的目录。)

c3634279ff1fd7dda4889ac37c97c1ca.png

c0b1bce1ee8776c786d98ac9ddf2b16c.png

最后成功!

四、运行成功

a748ad4e8b430ed33a4af7d649556e6f.png
原文链接​www.ganahe.top
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值