总结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 05 Python
python中reader的next用法
Jul 24 Python
python cumsum函数的具体使用
Jul 29 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
Aug 30 Python
Pytorch中accuracy和loss的计算知识点总结
Sep 10 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
关于Numpy中的行向量和列向量详解
Nov 30 Python
Python select及selectors模块概念用法详解
Jun 22 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 Python
Python Socket编程详解
Apr 25 Python
Python3中最常用的5种线程锁实例总结
Jul 07 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
SONY ICF-F10中波修复记
2021/03/02 无线电
PHP高级对象构建 多个构造函数的使用
2012/02/05 PHP
Php-Redis安装测试笔记
2015/03/05 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
jQuery 遍历map()方法详解
2016/11/04 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
js取0-9随机取4个数不重复的数字代码实例
2019/03/27 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
解决Can't find variable: SockJS vue项目的问题
2020/09/22 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
详解K-means算法在Python中的实现
2017/12/05 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
如何将PySpark导入Python的放实现(2种)
2020/04/26 Python
联想中国官方商城:Lenovo China
2017/10/18 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
房屋租赁委托书范本
2014/10/04 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书
2015年教师新年寄语
2014/12/08 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL