使用pyinstaller打包python程序,打包后exe程序过大解决方法

需求分析

在我们写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,大家有什么问题可以下方留言互相交流~

你可能感兴趣的:(python,python程序打包,python)