总结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统计列表中的重复项出现的次数的方法
Aug 18 Python
Python去除字符串两端空格的方法
May 21 Python
使用Python编写爬虫的基本模块及框架使用指南
Jan 20 Python
Python编程实战之Oracle数据库操作示例
Jun 21 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
Jul 18 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 Python
python3.x实现base64加密和解密
Mar 28 Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 Python
pycharm工具连接mysql数据库失败问题
Apr 01 Python
使用python实现微信小程序自动签到功能
Apr 27 Python
python和Appium的移动端多设备自动化测试框架
Apr 26 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实现伪静态方法汇总
2016/01/13 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
网上应用的一个不错common.js脚本
2007/08/08 Javascript
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
django 自定义用户user模型的三种方法
2014/11/18 Python
Python实现简单的文件传输与MySQL备份的脚本分享
2016/01/03 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
python3.7 openpyxl 删除指定一列或者一行的代码
2019/10/08 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
什么是Assembly(程序集)
2014/09/14 面试题
.NET是怎么支持多种语言的
2015/02/24 面试题
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
运动会广播稿80字
2014/01/23 职场文书
学期自我评价
2014/01/27 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
男方家长婚礼致辞
2015/07/27 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
Nginx限流和黑名单配置
2022/05/20 Servers