栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python打包exe瘦身方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python打包exe瘦身方法

1、创建虚拟环境
conda create -n colorcp(虚拟环境名) python==3.8(python版本号)  #创建虚拟环境
conda activate colorcp     #激活虚拟环境

创建新环境是因为不同项目需要的包的版本可能不一样,而且对于打包成exe,环境里的包太多会导致打包出来的文件很大

之后便需要在这个安装好的新环境里安装自己的程序里用到的包,此外,还需要安装pytinstaller

pip install pyinstaller

下载包的时候不要使用vpn,我使用vpn的时候,安装库就会报错

cd 到自己的程序.py所在的文件夹,如果在别的盘,需要先盘符加冒号再cd

(base) C:UsersDELL>E:

(base) E:>cd E:ColorComparer
2、打包

之后便可以对文件进行打包,打包有几种不同的方式,我试过 -F  和 -D。-D , -F是什么呢?这有一张表,这是从别的博主那里复制来的

(21条消息) Python打包成exe以及如何打包得足够小_hello,world-CSDN博客

使用-F会在dist文件夹生成一个.exe文件,可以直接执行;使用-D的方式打包,会在dist文件夹下生成一个文件夹,文件夹里包含.exe文件和各种依赖。先给大家看看我分别用这两种方法弄出来的文件大小吧。

用pyinstall -F 打包生成的文件:

用pyinstall -D 生成的文件:

 

 比用-F更大呢,但是这是一个文件夹,可以删掉里面不需要的东西,来达到瘦身的效果,这是删除后的文件夹大小:

 还是比用-F更大呢,但是这是一个文件夹,可以进行压缩,压缩后的文件大小:

 比 -F打包的小了将近一半呢。而且用-F打包需要耗费的时间特别长,用-D打包就很快,接下来分别说说这两种打包方法。

3、pyinstaller -F 安装

用这种方法的安装,我参考的是一篇博客,博主写的很好呢,跟着做就打包出来了,上面那张图也是从这里得来的,链接如下:

(21条消息) Python打包成exe以及如何打包得足够小_hello,world-CSDN博客

主要就是创建虚拟环境、在虚拟环境里安装需要的库、打包,我打包的时候用到的命令如下:

pyinstaller -F -w -i leaf.ico main.py --paths="D:ProgramDataAnaconda3envscolorcplibsite-packagescv2"
# -F 是打包方式
# -w是不带控制台的打包
# -i 是使用图标
# 后面加的一串path是我的程序里用到了opencv,但是直接打包会报opencv的错,加了path就不报错了,内容是cv2的路径
# 一般不用后面的path

这个方法打包挺慢的,程序打开也挺慢的,但是直接成成一个.exe文件。

4、pyinstaller -F安装

这种安装方法我参考了这篇博客:

(21条消息) Pyinstaller彻底解决打包过大的问题_u012863565的博客-CSDN博客_解决pyqt5打包后太大

大体都差不多,只是在导库的时候我用了一种可能更简便的方法。

还是先创建虚拟环境,安装程序用到的库,然后开始打包,用到的打包代码如下:

pyinstaller -D -w -i leaf.ico main.py --paths="D:ProgramDataAnaconda3envscolorcplibsite-packagescv2"
# 其实就是把- F换成-D了而已

这种方法打包特别快。

之后便在dist文件夹里生成一个文件夹:

 一开始只有框出来的文件夹,剩下的是我后来生成的。这时候的main文件特别大,接下来就是文件瘦身。先复制main文件夹,对就是那个副本,然后新建一个文件夹(我这里新建了一个,命名为color).

先把main里面的这三个文件复制到新建的文件夹里,这里是color文件夹:

 剩下的.ui文件是我的程序里用到pyqt5,所以需要这么一个文件,也是复制进来的,.ico文件就是用到的图标文件。

python38.dll是解释器库,也是必不可少的。

那个压缩包是标准库,会自动解压到c盘的缓存目录里,你报错没有找到模块的话可以考虑直接把py文件丢到这个压缩包里面。

那个博主是这么说的,所以就先把这些文件复制到color文件夹里,那个博主这一步还有一个.py文件,但是我没搞,最后还是可以成功瘦身的。

打开main的副本文件夹,双击.exe文件。如果有项目用到.ui文件,需要把.ui文件也放到main文件夹里。程序运行的时候,全选main副本文件夹里的内容,然后删除。

遇到正在运行的问题,全部选跳过 

 之后把main副本文件夹里所剩余的内容全选,复制到color文件夹里,弹出的对话框里选择跳过,选覆盖也没事的吧哈哈,反正都一样

 

然后双击color文件夹里的.exe文件,会报错:

 从main源文件夹中,找到tcl(每个程序需要的库不同,你用的时候提示的可能是别的文件,反正就在main原文件夹里找,然后复制到新建的文件夹里)文件夹,然后复制到color文件夹里:

 

然后再运行color文件夹里的.exe文件,可能还是报错,继续在生成的源文件夹里找,复制粘贴到新建的文件夹里。直到.exe文件可以正常运行

然后直接用压缩文件压缩color文件夹,就生成了一个很小的压缩包啦,我这里还比较大是因为程序中用到了opencv。要使用软件的时候,解压压缩包,双击里面的.exe文件即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529941.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号