总结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简单日志处理类分享
Feb 14 Python
Python使用Flask框架同时上传多个文件的方法
Mar 21 Python
python中使用mysql数据库详细介绍
Mar 27 Python
浅谈MySQL中的触发器
May 05 Python
Python的装饰器用法学习笔记
Jun 24 Python
Python Sqlite3以字典形式返回查询结果的实现方法
Oct 03 Python
浅谈Python由__dict__和dir()引发的一些思考
Oct 30 Python
Python模块搜索路径代码详解
Jan 29 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
Nov 06 Python
用Python做一个久坐提醒小助手的示例代码
Feb 10 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
python使用dlib进行人脸检测和关键点的示例
Dec 05 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音乐采集(部分代码)
2007/02/14 PHP
实用函数8
2007/11/08 PHP
javascript some()函数用法详解
2014/11/13 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
php json转换相关知识(小结)
2018/12/21 PHP
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
豆瓣网的jquery代码实例
2008/06/15 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
2019/04/29 Javascript
JavaScript剩余操作符Rest Operator详解
2019/07/20 Javascript
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
利用scrapy将爬到的数据保存到mysql(防止重复)
2018/03/31 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
Python中url标签使用知识点总结
2020/01/16 Python
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
志愿者服务感言
2014/02/27 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
Python pandas之求和运算和非空值个数统计
2021/08/07 Python
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL