**需求分析**
在我们写python程序的过程中,难免会遇到一些需求,比如给别人写一个小工具什么的
但是除了写Python的,绝大多数人电脑里都没有Python编译器,所以打包成exe,让用户(windows)双击就可以打开,就非常方便了。
那么说到打包,我们就需要用到python程序的打包工具pyinstaller了,这个包安装简单,使用同样简单。这里就不多做介绍了
本人使用python的版本是3.7.6
安装 pyinstaller
pip3 install pyinstaller
打包命令
pyinstaller -F ./test.py
今天主要要记录的是python打包成exe之后文件过大怎么解决。
我给公司的业务写了个导数据库数据到excel的导报表工具,然后使用pyinstaller打包,打包之后发现程序足足55M,这超出预期太多。
于是想办法就把程序里面的不需要的导入包都砍掉。。然鹅再次打包之后大小基本没变化。上网查了下资料,有人说,Anaconda里内置了很多库,打包的时候打包了很多不必要的模块进去,要用纯净的Python来打包。
查资料,需要用到pipenv虚拟环境,研究了一下。就不说废话了,直接上解决流程。
解决问题
打开windows的CMD
1、安装pipenv
pip3 install pipenv
2、安装一个虚拟环境
pipenv install
3、进入虚拟环境
pipenv shell
4、在虚拟环境中安装你的程序中用到的模块,注意我们虚拟环境打包,那么我们还需要在虚拟环境安装pyinstller
pip3 install openpyxl
pip3 install pymysql
pip3 install arrow
pip3 install pyinstaller
5、在虚拟环境开始打包
pyinstaller -F "D:\test\test.py"
6、运行完毕,查看打包完毕后的大小
我的打包完成之后存在了这个路径。去把它取出来~
效果很明显,只有6M了。很棒!
虚拟环境还可以清空已安装的模块,比如你要打包其他的工具的时候想要一个纯净的空间
你可以清掉你现有的模块,只需要一条命令即可。然后再进入虚拟环境安装你需要的模块即可~更多的命令pipenv使用说明只需要在cmd中运行pipenv命令即可get!
pipenv clean
这算是解决这个问题最快,最方便的方法了吧。比装个虚拟机,重装python环境要简单得多~
新手刚学python,大家有什么问题可以下方留言互相交流~