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


如果网速太慢可以切换国内源来加速,本文其他部分直接使用国内源,不再重复注释。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9a3f9a0f48ec4e39aced601b5e9b5a27.png)



pip install -i https://pypi.douban.com/simple/ pyinstaller #豆瓣源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller #清华源


### 3、Pyinstaller打包步骤


这里我们拿之前Python自动批量写Word日报的代码,作为案例来演示。将其中脚本py\_word.py,待处理的表格文件workbook.xlsx,以及准备好的软件图标图片chengzi.ico放在了我电脑的F:\py\_word目录下(如果大家感兴趣的话,可以在文末下载获取)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f14e2ad001c3485aa38abeb637dcdd12.png)  
 1、cmd切换到我们刚刚放文件的目录  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/6b6d405d7e884b20a373b741a18ddcbd.png)  
 2、执行命令Pyinstaller -F -w -i chengzi.ico py\_word.py,执行过程特别漫长,就没有录制动图。


执行完毕会发现当前目录多了几个文件夹,打开其中名为dist的文件夹。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/167c6765cd7c4a868b727defad41b495.png)  
 已经生成了一个名为py\_word的exe应用程序,并且图标也是我们设置的橙子图案,看来已经成功一半了。


要不运行一下,试试能否正常生成word日报?  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1f4448ec42c8415c925e705c2d323091.jpeg)  
 打包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  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/18a8eb97fccf426986219d6224c10cb4.png)  
 最后稍微总结一下:



Pyinstaller -F py_word.py 打包exe

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

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


以上三个是比较常用的参数,其他参数详见下表  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/54821368969743448d7994c8d87404f3.png)  
 Pyinstaller参数大全


### 5、ico图片生成


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


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


另一个是可以自己生成,这里就给大家分享一个网站,可以把其他格式图片转成ico格式:https://app.xunjiepdf.com/img2icon/  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2eb55610ced743f4bccdcaefc5e5f5f7.png)  
 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的虚拟环境。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/17056ddc132e42d588c5b6cb1eca5ca2.png)  
 在创建过程中需要回复(y/n),Yes,再激活虚拟环境  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/83393b4664f3454d9ad50202ff79398f.png)  
 conda安装的虚拟环境,会把虚拟环境的目录生成在anaconda安装目录下的env目录下。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/15f480f1df9f40ec99d2ba59cb75a5cd.png)  
 当然我们也可以在刚刚的窗口,使用命令conda info --envs,来查看conda环境下所有的虚拟环境  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/157bc36a28bd4d9aa8f4e8422b10ebbd.png)


### 3、安装所需的库


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



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


安装后再看  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d74e58e252c84ff3bc76746624a98be3.png)


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


### 4、Pyinstaller打包步骤


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



Pyinstaller -F -w -i apple.ico py_word.py
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

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

二、学习软件

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

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

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

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试资料

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

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

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

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值