总结Pyinstaller的坑及终极解决方法(小结)


Posted in Python onSeptember 21, 2020

一. 首先要有个稳定环境

下面是博主经测试的觉得坑比较少的环境搭配

1.Python3.4 + PyQt5.4 + Pyinstaller3.2.1
2.Python3.5 + PyQt5.8 + Pyinstaller3.2.1

二. Pyinstaller遇到坑没必要换打包工具

博主好几次用Pyinstaller遇到坑时都有考虑换工具如py2exe或cx-freeze之类的, 依旧无法解决 (最后还是用pyinstaller解决了)
所以没必要换其他工具, pyinstaller就够了

三. 坑1: 打包不了, 连exe都生成不出来

解决方法
直接换Pyinstaller的版本, 即卸掉重装, 推荐用3.2.1

四. 坑2: exe生成了, 但是跑不了

大多数情况都是被坑在这里

解决方法
1.遇到这种问题不管弹出什么样的错误提示, 在输出exe时参数加个'-d'即debug模式, 然后打开的时候能看到打印的错误信息了, 这招很好用
2.留意一下程序依赖的一些资源文件, 检查下路径是否正确, 特别是程序里有相对路径的; 还有一些涉及到依赖系统默认资源的如默认字体啥的, 也得留意
3.换下打包方式, 如onefile模式和onedir模式 (之前出现过onedir打包可以但onefile打包不行的情况)
4.环境变量PATH中加上PyQt5的plugins的路径
5.依旧不行则换个Pyinstaller的版本, 即卸掉重装, 推荐用3.2.1
6.再不行则换操作系统试试, 有win10跑得了但到了win7就跑不了的情况 (弄个虚拟机测下找下问题在哪)

五. 错误码集锦

main return -1
这种错误基本都是自己的问题, 只能在输出exe时参数加个'-d'即debug模式, 然后再查下打印的错误信息

Failed to execute script pyi_rth_pkgres
可以先换Pyinstaller的版本, 这个错误会消失, 但会弹出其他的错误信息, 然并卵
这种错误基本都是自己的问题, 只能在输出exe时参数加个'-d'即debug模式, 然后再查下打印的错误信息

Failed to execute script xxxx
这种错误基本都是自己的问题, 只能在输出exe时参数加个'-d'即debug模式, 然后再查下打印的错误信息

This application failed to start … Qt platform plugin …
这种错误先配下PyQt5的plugins的环境变量, 如博主的是C:\Python34\Lib\site-packages\PyQt5\plugins
不行再换Pyinstaller的版本 (貌似3.0.0这个版本有问题, 后来换3.2.1就没事了)

到此这篇关于总结Pyinstaller的坑及终极解决方法(小结)的文章就介绍到这了,更多相关Pyinstaller的坑及解决方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中还原JavaScript的escape函数编码后字符串的方法
Aug 22 Python
简单介绍Python中的几种数据类型
Jan 02 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
Jan 07 Python
Python类的动态修改的实例方法
Mar 24 Python
python实现图像识别功能
Jan 29 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
Jan 04 Python
图文详解python安装Scrapy框架步骤
May 20 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
Python configparser模块应用过程解析
Aug 14 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
Python 3.9的到来到底是意味着什么
Oct 14 Python
Python 多进程原理及实现
Dec 21 Python
python生成xml时规定dtd实例方法
Sep 21 #Python
Python中的特殊方法以及应用详解
Sep 20 #Python
matplotlib 三维图表绘制方法简介
Sep 20 #Python
Python三维绘图之Matplotlib库的使用方法
Sep 20 #Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 #Python
Python操作dict时避免出现KeyError的几种解决方法
Sep 20 #Python
python中random.randint和random.randrange的区别详解
Sep 20 #Python
You might like
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
ASP Json Parser修正版
2009/12/06 Javascript
IE和Firefox下event事件杂谈
2009/12/18 Javascript
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
详解JavaScript数组过滤相同元素的5种方法
2017/05/23 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
详解vue axios二次封装
2018/07/22 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
浅谈Python基础之I/O模型
2017/05/11 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
python验证身份证信息实例代码
2019/05/06 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
见习期自我鉴定
2014/01/31 职场文书
平面设计专业求职信
2014/08/09 职场文书
公司员工安全协议书
2014/11/21 职场文书
承诺保证书格式
2015/02/28 职场文书
毕业生自荐信范文
2015/03/05 职场文书