python打包技巧:彻底解决pyinstaller打包exe文件太大的问题
之前也写过很多的小工具,粉丝朋友们应该都知道在本公众号内回复任意关键字即可获取以往的工具源码或是exe可执行应用。
【阅读全文】
因为以往发过的小工具基本都是几十MB大小的exe应用,也就没有在意exe太大给大家带来的困扰,今天就准备来彻底的解决一下这个问题。
其实每次打包的exe的应用过大无非就是两个方面的语言因导致的,一是我们在开发的代码的过程中为了简便经常使用import *的操作直接导入库中所有的模块。
二是在打包过程中直接使用现有的环境直接利用pyinstaller的命令,导致python的很多标准库和不需要的三方模块被导入。分析清楚原因那就好办了,解决办法肯定是有的,那就是pipenv非标准库。
接下来具体看看我们该如何使用pipenv打出最小的exe的应用,没有安装的话使用pip的方式安装一下即可。
pip install pipenv -i https://pypi.tuna.tsinghua.edu.cn/simple/
安装完成后,即可以使用pipenv的虚拟环境来进行操作了,正常情况下安装下面的步骤执行pipenv的虚拟环境操作:
- 建立虚拟环境
pipenv install - 进入虚拟环境(上一步可省略,因为没有虚拟环境的话会自动建立一个)
pipenv shell - 安装需要打包的代码块中使用到的所有的python模块
pip install requests pyquery pysimplegui fake_useragent - 安装pyinstaller模块用于打包
pip install pyinstaller - 使用pyinstaller命令直接开始打包
pyinstaller -Fw E: est014 est4.py
需要注意的是如何物理环境中已经安装了pyinstaller,在pipenv的虚拟环境中这个命令是可以使用的,但是千万不要这么做需要在pipenv的虚拟环境中再次安装一下否则打出来的exe的应用包还是很大。
这是因为物理环境中原有的pyinstaller已经关联了很多的python内联模块,导致就算在虚拟环境中打的exe程序包仍然非常大的缘故。
另一个需要注意的是在pipenv的需要环境中必须安装好需要打包的代码块中所引用的相关python模块,不然打出来的exe程序包也不能正常运行的。
掌握了上述的pipenv虚拟环境的使用以及pyinstaller的使用,我们都能打出非常小且可用的exe程序包,感谢大家的阅读!
【往期精彩】
github上又出新项目了,可以轻松完成一键抠图!
python做了个自动关机工具【文末获取下载链接】
吐血整理python数据分析利器pandas的八个生命周期!