PyQt5 打包成 exe 文件,运行弹窗出现 failed to execute script main 使用–hidden-import=queue 解决后仍失败的新方法
在打包 pyqt5 写的 GUI 界面程序时一直失败(经过 pyinstaller 打包成单个文件),有以下错误提示:
1 | WARNING: was placed previously at |
同时运行 exe 文件时,弹出错误提示框:failed to execute script main 在这里插入图片描述
(一)解决办法一:打包命令附带–hidden-import=queue
打包时加上 –hidden-import=queue
即 Parameters 配置修改为:
Parameters:–hidden-import=queue -w -F $FileName$
命令行打包示例:
1 | pyinstaller --hidden-import=queue -w -F main.py |
打包结果生成: 在这里插入图片描述
== 注意:== 打包生成的 exe 文件是在 dist 文件夹下,由于项目中有文件目录用到项目的相对路径,同时为了演示,以上图片中 dist 外面的.exe 文件为本人拷贝出来的。
此时一般就可以打包完成了。
(二)仍然弹窗 failed to execute script main?(亲身经历,不堪回首….)
在 main.py 文件中,构建显示窗体 GUI 界面时,加入如下代码:
1 | import sys,os |
再次重复第一次步骤打包即可。
最后效果: 在这里插入图片描述
(三) 使用 Pychram 一键快捷打包.exe 文件
Pychram 是重量级的 python 编辑器,可以配置相应的变量等实现在编辑器中写完代码即可打包,无需外部再 cd 定位文件再 pyinstaller 命令打包。
相应步骤如下:
3.1 打开:文件 - 设置
3.2 定位到:工具 - 外部工具
在这里插入图片描述
注:此处出现的外部工具 Pyinstaller 即为本人已经做好的结果。
3.3 左侧小绿加号添加操作
3.4 给操作命名并进行相应的配置
在这里插入图片描述
== 参数说明:==
- == 程序:== 即下载的 pyinstaller 包内的 pyinstaller.exe 文件路径,一般使用 pip 命令下载位于 python 的安装目录下的 Scripts 文件夹下。
- 参数:在第一步骤说到的加入参数即这里可以自动配置:
1 | -F -w --hidden-import=queue $FileNameWithoutExtension$.py |
- 工作目录:推荐设定为
1 | $FileDir$ |
也可以设定为:
1 | $ProjectFileDir$ |
两者区别以及作用可参考该文章: 在 Pychram 中配置 PyUIC5 时文件路径说明与设置
3.5 保存 - 应用
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
此时界面出现:
v1.5.2