别再问我Python打包成exe了!(终极版)_不要再问我 python 打包

已经生成了一个名为py_word的exe应用程序,并且图标也是我们设置的橙子图案,看来已经成功一半了。

要不运行一下,试试能否正常生成word日报?
在这里插入图片描述
打包exe后执行
成功运行,可惜就是文件有点大(339M)

4、Pyinstaller参数详解

说回刚刚执行的命令

Pyinstaller -F -w -i chengzi.ico py_word.py
给大家解释一下其中Pyinstaller的参数,其中-F参数代表制作独立的可执行程序。

-w是指程序启动的时候不会打开命令行。如果不加-w的参数,就会有黑洞洞的控制台窗口出来。比如在刚才的脚本里我加一行print(‘Hello World!’),那么就不要放-w参数了,不然运行会报错,毕竟Hello World!需要在命令行里打印出来。此外,-w参数在GUI界面时非常有用。

最后的-i chengzi.ico就是指设置自己的图标图案,因为默认打包图片是下图这样的。这个参数也可以写成–icon=chengzi.ico
在这里插入图片描述
最后稍微总结一下:

Pyinstaller -F py_word.py 打包exe

Pyinstaller -F -w py_word.py 不带控制台的打包

Pyinstaller -F -w -i chengzi.ico py_word.py 打包指定exe图标打包

以上三个是比较常用的参数,其他参数详见下表
在这里插入图片描述
Pyinstaller参数大全

5、ico图片生成

自己做的软件都喜欢放上自己的图标,不过哪来那么多ico图片呢?

一个是可以找专门的ico图片网站,不过都很小众,图片库也很小。

另一个是可以自己生成,这里就给大家分享一个网站,可以把其他格式图片转成ico格式:https://app.xunjiepdf.com/img2icon/
在这里插入图片描述
ico图片格式转换

二、压缩打包

好了,小伙伴们

来到了最激动人心的时刻,刚刚生成的exe实在太大了,300多M的软件程序想用微信传一下都费劲。

我也试过很多方法,比如:修改spec文件自定义打包、pipenv 虚拟环境、使用开源的upx压缩等等,但是往往要么过程比较麻烦,要么成功率不高(压缩成不成功全看脸)。

而我要分享的,是自己一直在用的,最简单且成功率极高的方法——conda创建虚拟环境。

1、Python打包为什么大?

在压缩打包之前,先简单说一下为什么Python打包过大?

Python打包exe,不但体积大而且运行奇慢。解释型语言大都是这个样子,只不过Python尤其突出。要解决大而慢,只能用编译型语言,如C,C++,甚至VB都好很多,体积最小的是汇编。[1]

此外,还有知乎大佬说是因为“Anaconda里内置了很多库,打包的时候打包了很多不必要的模块进去,要用纯净的Python来打包。”

所以我们可以模拟一个新环境,其中只安装我们本次打包所必要的工具包即可。

那最适合的就是——虚拟环境了!

2、虚拟环境

Python创建虚拟环境的方法有很多,而我是个Anaconda忠实用户,如果你跟我一样,那就简单了。(大家也可以使用Virtualenv、Pipenv来设置虚拟环境,善用搜索,方法大同小异)

先记几个命令,很简单

conda create -n 虚拟环境名字 python==3.6  #创建虚拟环境

conda activate 虚拟环境名字  #激活虚拟环境

conda deactivate  #退出虚拟环境

从开始菜单运行“Anaconda Prompt”,出现的界面输入创建虚拟环境的指令。成功创建了一个名字为aotu,且基于python版本3.6的虚拟环境。
在这里插入图片描述
在创建过程中需要回复(y/n),Yes,再激活虚拟环境
在这里插入图片描述
conda安装的虚拟环境,会把虚拟环境的目录生成在anaconda安装目录下的env目录下。
在这里插入图片描述
当然我们也可以在刚刚的窗口,使用命令conda info --envs,来查看conda环境下所有的虚拟环境
在这里插入图片描述

3、安装所需的库

上面我们已经创建并激活了名为aotu虚拟环境,输入conda list可以查看当前虚拟环境里已经安装的库。
在这里插入图片描述
我们打开所要打包的Python脚本,对比上图,发现pandas,docx这两个库还需要额外安装。当然,也不能缺了打包必不可少的pyinstaller库。
在这里插入图片描述
待打包脚本
安装库的过程不再赘述

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

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx

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

安装后再看
在这里插入图片描述

已成功安装,还有一些因为这几个库所附带安装的,就不管他们了。

4、Pyinstaller打包步骤

这里就不再重复了,只换个苹果图标试试

Pyinstaller -F -w -i apple.ico py_word.py

在这里插入图片描述
生成
在这里插入图片描述
成功压缩到29.8M,如果不导入pandas这位大神,应该就可以10多M了

运行一下,毫无问题
在这里插入图片描述
最后再简单总结一下虚拟环境+打包的全过程(只三步):

#创建虚拟环境
conda create -n aotu python=3.6

#激活虚拟环境
conda activate aotu

#Pyinstaller打包
Pyinstaller -F -w -i apple.ico py_word.py

5、总结一些小坑

1、说起来还是有点玄学,上文中一模一样的过程我在两个电脑都执行过一遍。在其中一个上显示缺少xlrd这个库,安装后成功打包,也是一样的大小。小伙伴们可以在文末获取文件,也试试。

2、在安装库是要注意一些库名,比如docx这个库不要pip install docx,而是需要

pip install python-docx

还有一些库可能因为版本不同导致不能使用,多碰碰壁就好了。

3、为了防止打包时候有些库没安装好,可以先在虚拟环境中执行一下Python脚本。运行无误的话再打包,比较保险。
在这里插入图片描述
4、最后,如果想要删除虚拟环境的话,可执行下方命令

conda remove -n aotu--all 

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-ytZ0YRmi-1712904141626)]

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值