Anaconda使用pyinstaller打包exe程序体积过大

现象

使用的是Anaconda进行包管理,由于pyinstaller默认使用系统python环境变量来打包的,因此如果系统使用的python环境安装了太多的包,会导致最终输出的exe程序太大了,达到200多M。

解决方案

使用anaconda新建一个python环境,命名为ins

#新建环境ins,使用python3.6
conda create –name ins python=3.6
#激活环境
conda activate ins
#在新的环境中安装脚本需要的各种库,packages自行替换成自己用到的库,用到的库越少最终打包出来的体积越小
pip install packages
#安装pyinstaller
pip install pyinstaller
#使用pyinstaller打包出程序,生成的exe程序路径在项目根目录下的dist文件夹下
pyinstaller -Fw main.py

如果运行出错了,提示failed to execute script xxx,有可能是因为某些依赖包没有安装导致的,可以运行

#生成调试模式的exe,生成的exe程序路径在项目根目录下的dist文件夹下
pyinstaller -F main.py

cmd下运行生成的程序main.exe,会输出错误信息,我遇到的是no module named urllib3,于是我重新在python环境中安装urllib3,特别需要注意的是这里重新打包前,要删除根目录build文件夹下的编译缓存信息,不然不会重新打包urllib3的库

#安装缺失的依赖包urllib3
pip install urllib3
#重新打包,特别需要注意的是这里重新打包前,要删除根目录build文件夹下的编译缓存信息,不然不会重新打包urllib3的库
pyinstaller -Fw main.py

生成后exe程序只有10M而已

你可能感兴趣的:(Anaconda使用pyinstaller打包exe程序体积过大)