总结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的Flask框架中实现简单的登录功能的教程
Apr 20 Python
利用Python画ROC曲线和AUC值计算
Sep 19 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
python2.7安装图文教程
Mar 13 Python
pytorch: tensor类型的构建与相互转换实例
Jul 26 Python
python 执行终端/控制台命令的例子
Jul 12 Python
Pycharm+Python+PyQt5使用详解
Sep 25 Python
python获取array中指定元素的示例
Nov 26 Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
Feb 25 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
 Python 中 logging 模块使用详情
Mar 03 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 smarty的预保留变量总结
2008/12/04 PHP
一步一步学习PHP(2)――PHP类型
2010/02/15 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
解析PHP实现下载文件的两种方法
2013/07/05 PHP
php实现的替换敏感字符串类实例
2014/09/22 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
自己的js工具 Cookie 封装
2009/08/21 Javascript
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
js对象继承之原型链继承实例
2015/01/10 Javascript
JQuery中基础过滤选择器用法实例分析
2015/05/18 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
python3.3实现乘法表示例
2014/02/07 Python
python如何让类支持比较运算
2018/03/20 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
Python基础之变量基本用法与进阶详解
2020/01/03 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
css3 实现滚动条美化效果的实例代码
2021/01/06 HTML / CSS
html5 标签
2009/07/16 HTML / CSS
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
材料化学应届生求职信
2013/10/09 职场文书
优秀班主任材料
2014/12/16 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
浅析NIO系列之TCP
2021/06/15 Java/Android