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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • TIMESTAMPDIFF用法

    TIMESTAMPDIFF用法TIMESTAMPDIFF用法:TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)返回日期或日期时间表达式datetime_expr1和datetime_expr2the之间的整数差。mysql>SELECTTIMESTAMPDIFF(MONTH,’2009-12-01′,’2009-09-01′);mysql&gt…

    2022年6月10日
    38
  • 运算放大电路在音频放大电路中的应用研究与实现「建议收藏」

    运算放大电路在音频放大电路中的应用研究与实现「建议收藏」1、导言放大电路是构成各种功能模拟电路的基础电路,也是对模拟信号最基本的处理。音频信号可以分解成若干频率的正玄波之和,其频率分为在20Hz~20KHz。不当的放大电路会造成音频信号的失真,亦会带来干扰和噪声。所有电子信息系统组成的原则都应包含:1、满足功能和性能要求,2、尽量简单,3、电磁兼容,4、调试应用简单。因此本文就来研究在不会增大电路复杂度的前提下,如何实现音频信号放大的同时对信号进…

    2022年5月29日
    35
  • RelativeLayout.LayoutParams学习与运用

    RelativeLayout.LayoutParams学习与运用1、了解LayoutParams其实LayoutParams就是代表一个布局属性,每一个ViewGroup对应一种LayoutParams。LinearLayout对应LinearLayout.LayoutParams,RelativeLayout对应RelativeLayout.LayoutParams。我们在XML中写的大多数属性,在代码中通过LayoutParams同样可以操作界面布局。下面以

    2022年7月17日
    16
  • 移动端开发规范

    移动端开发规范移动端开发规范引言:最近得空,整理一些平时工作中要求的开发规范,浅薄之处还请大家多指教。目录移动端开发规范代码规范基本原则代码清晰一致性通用规范类命名方法命名变量命名常量命名枚举类型命名图片命名通用规范通用设计规范开屏页版本号版本检查开屏页广告推送通用测试用例及处理规范规范用例数据埋点规范…

    2022年6月24日
    32
  • 《第三方JavaScript编程》——7.3 跨站请求伪造[通俗易懂]

    《第三方JavaScript编程》——7.3 跨站请求伪造

    2022年3月3日
    41
  • OpenCV-计时函数cv::getTickCount&cv::getTickFrequency

    OpenCV-计时函数cv::getTickCount&cv::getTickFrequency本文介绍了一种便于记忆的 OpenCV 计时函数 方便大家使用

    2025年8月7日
    1

发表回复

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

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