原因
由于使用pyinstaller
打包.py
文件时,会把很多已安装的无关库同时打包进去,导致打包生成的.exe
文件体积过大。
解决办法
使用pipenv
创建虚拟python
环境,在虚拟环境中安装.py
文件所用到的库(即py
文件中import
的第三方库),然后在pipenv
所创建的虚拟环境中使用pip
安装打包所用到的pyinstaller
。注意:本机安装过pyinstaller
的也要重新进入虚拟环境中安装,不然会使用pyinstaller
命令打包时,还是会生成大体积的.exe
可执行文件。
具体步骤
情况一:初次打包
- 在命令行(CMD)使用
pip
命令安装pipenv
库,用于创建虚拟环境
pip install pipenv
- 新建一个准备当环境的文件夹,并cd进入该文件夹
- 建立虚拟环境
pipenv install
- 进入虚拟环境(以下操作皆为虚拟环境下的操作)
pipenv shell
- 安装.py文件用到的模块
pip install 【.py用到的模块】
- 安装pyinstaller模块,用于打包.py文件
pip install pyinstaller
- 使用pyinstaller打包文件
pyinstaller -F E:\\pipenvtest\\test.py(.py文件根据实际情况更改)
- 结果文件
运行完第7步之后,在目录下回生成‘dist’文件夹,里面存放的就是结果文件。
情况二:再次打包
若再次打包时,情况一中所创建的虚拟环境未曾删除,可跳过情况一中的第1、2、3步,直接进行第四步进入虚拟环境。然后第5步同理保留原先添加过的py模块,即若无新增新的模块,可跳过第5步和第6步,直接进行第7步打包操作。
- cd进入此前创建虚拟环境的文件夹。
- 进入虚拟环境(以下操作皆为虚拟环境下的操作)
pipenv shell
- 安装.py文件用到的模块
pip install 【相较上一次打包新增的模块】
- 使用pyinstaller打包文件
pyinstaller -F E:\\pipenvtest\\test.py(.py文件根据实际情况更改)