Pyinstaller打包exe太大,运行太慢

Pyinstaller打包exe太大,运行太慢1.背景通过python使用pyqt编写了一个界面程序,并使用pyinstaller将其打包成exe文件2.问题打包的exe文件非常大,有280M,而且更无法忍受的是打开非常非常的慢!!!3.解决办法(1)将import改为from…import…尝试之后,并么有什么用,依然是非常非常的大,非常非常的慢。(2)anaconda的问题看网上有人说是anacon…

大家好,又见面了,我是你们的朋友全栈君。

1.背景

通过python使用pyqt编写了一个界面程序,并使用pyinstaller将其打包成exe文件

2.问题

打包的exe文件非常大,有280M,而且更无法忍受的是打开非常非常的慢!!!

3.解决办法

(1)将import改为from…import…

尝试之后,并么有什么用,依然是非常非常的大,非常非常的慢。

(2)anaconda的问题(亲测确实可以280M缩小到72M,速度也从几分钟到十几秒)

看网上有人说是anaconda的问题,应该安装纯净的python,不装anaconda,因为anaconda包太多,在打包的时候,你的exe会集成很多不必要的包,从而导致exe文件太大。因为集成了很多不必要的包,而exe在打开时会先加载依赖,从而导致文件打开慢!

因此,用虚拟机装了win7,在win7上安装纯净的python,网址:https://www.python.org/,如果下载太慢可以复制链接,在迅雷中下载python.exe。

将文件拷贝到win7上,用python执行,会看到缺少各种包,再根据提示pip安装各种包即可,直到在win7上成功运行你的项目。pip国内镜像安装包:

pip install 包名 -i  https://pypi.tuna.tsinghua.edu.cn/simple/ 

之后是重头戏!!!

pip 安装pyinstaller,然后在你的项目下:

pyinstaller -F XXX.py

成功之后在dist文件下会有XXX.exe文件

可以发现exe文件大大减小,而且打开也快多了!!!(280M缩小到72M!!!)

如果不想显示win的控制台,可以执行:

pyinstaller -F -w XXX.py

建议刚开始还是显示控制台,因为这样可以在控制台看到错误信息的提示!!!,对于一闪就退的问题,可以使用手机录像功能,记录错误,方便查看!!!

4.附录

(1)win7无法安装python

Pyinstaller打包exe太大,运行太慢

这是因为win7版本过老,只需在windows update更新一下即可!

(2)scipy打包出错

pyinstaller 在打包时,生成的exe文件无法打开,查看了一下错误,是因为scipy的原因。

原来的scipy的版本是1.3.3,我觉得是版本太高了,就卸载了,重新安装scipy==1.0.0

成功打包!!!

(3)无访问权限

我原来把python安装在了C盘的Program Files里面,结果发现,经常出现无访问权限的问题,因此又卸载重新安装在了其他位置,没有问题了。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151676.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • idea ultimate2021.4激活码【在线破解激活】

    idea ultimate2021.4激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
  • C语言3×3二维数组_什么是二维数组

    C语言3×3二维数组_什么是二维数组C语言目录C/C++学习资源(百度云盘链接)计算机二级资料(过级专用)C语言学习路线(从入门到实战)编写C语言程序的7个步骤和编程机制C语言基础-第一个C程序C语言基础-简单程序分析VS2019编写简单的C程序示例简单示例,VS2019调试C语言程序C语言基础-基本算法C语言基础-数据类型C语言中的输入输出函数C语言流程控制语句C语言数组——一维数组二维数组前面介绍了…

    2022年7月27日
  • 并发系列(3)之 CLH、MCS 队列锁简介

    并发系列(3)之 CLH、MCS 队列锁简介这篇博客主要是作为AbstractQueuedSynchronizer的背景知识介绍;平时接触也非常的少,如果你不感兴趣可以跳过;但是了解一下能更加的清楚AQS的设计思路;一、自旋锁简介通

    2022年8月2日
  • cubieboard 资源

    cubieboard 资源开发链接:http://pan.baidu.com/s/1o6r27V0密码:46h2文档资料:http://pan.baidu.com/s/1kTFXMSZ密码:9pka视频资料:http://pan.baidu.com/s/1ntLYBLB密码:mvcf http://dl.cubieboard.org/model/cubietruck/…

    2022年7月22日
  • 蓝牙脂肪秤模块测量原理

    蓝牙脂肪秤模块原理跟普通电子体重秤的原理差不多,都是利用压力传感器及芯片设计完成功能的实现。蓝牙电子秤的外形和地面有四个接触点,四个接触点那里都放着一种压力传感器,压力传感器将人体的重量转换成电信号,后经过芯片设计完成处理器AD采样,再经过换算便可以得到人体的体重。蓝牙脂肪秤模块测量体脂是通过电阻抗法测量出来的,它的具体原理是由电极片发出微弱电流,与人体形成一个闭环,通过肌肉易导电,脂肪不导电的…

    2022年4月11日
  • MySQL清空表数据

    MySQL清空表数据清空表数据一共有三种方式1、truncate(速度很快)自增字段清空从1开始全表清空首选2、drop直接删表…啥都没了啥都没了…………3、delete速度慢的一批自增字段不清空MySQL清空表数据命令:truncate说明:删除内容、释放空间但不删除定义,也就是数据表的结构还在。与drop不同的是,它只是清空表数据而已,它比较温柔。truncatetable表名注意:不能与where一起使用。truncate删除数据后是不可以rollback

    2022年6月14日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号