解决Python利用pyinstaller封装exe过大问题

解决Python利用pyinstaller封装exe过大问题

  • 总结
  • 解决步骤
    • 一、利用anaconda3建立虚拟环境。(对新手来说非常方便)
    • 二、设置环境变量(为调用命令和安装其他包做必要的铺垫)
    • 三、安装其他包
    • 四、开始封装
    • 五、封装完毕

总结

解决利用anaconda环境调用pyinstaller打包exe过大问题
关键点:
1、anaconda环境下Library\bin文件中的依赖过多,导致打包后的文件过大,需要新建一个环境,删掉新环境下Library\bin文件中绝大部分文件;
2、如果电脑中有多套Python,系统环境变量的设置,决定了用哪一套去打包。

(PS:记录中的路径可以作为参考,但最终要根据自己的电脑确定,每个人可能都会有差异!)

解决步骤

一、利用anaconda3建立虚拟环境。(对新手来说非常方便)

解决Python利用pyinstaller封装exe过大问题_第1张图片
建立好虚拟环境后,环境中只有最基本的包,可以利用anaconda把需要用到的包装上,比如我又把pandas、pyinstaller装上了。

二、设置环境变量(为调用命令和安装其他包做必要的铺垫)

将系统环境变量Path设置成刚建立的虚拟环境路径(在cmd中调用虚拟环境中的pip、python等命令需要用到):
C:\Users\John\Anaconda3\envs\bt\Library\bin (关键点:打包过大就是这个文件导致的
C:\Users\John\Anaconda3\envs\bt\Scripts
C:\Users\John\Anaconda3\envs\bt
其他Python路径全部删除(包括用户变量中的Path),用的时候再加,不然不知道是用的哪个!(作为新手,我是真不知道!)

可以借鉴链接:windows环境下面配置pip环境变量。
再调用cmd时,可能会出现SSL错误,我用以下两个链接搞定!
1、解决 ‘Could not fetch URL’问题;
2、解决下载源的问题(原始下载源太慢了)!

三、安装其他包

调用cmd(win+R),输入pip install xx命令安装其他包,比如baidu-aip等三方包,安装完后,这些包会出现在:C:\Users\John\Anaconda3\envs\bt\Lib\site-packages下。

四、开始封装

两种方式:
方式1、将cmd调到需要封装的文件路径下,输入pyinstaller -F ××.py
方式2、将××.py文件copy到C:\Users\John\Anaconda3\envs\bt\Scripts路径下(因为pyinstaller在此文件夹内),同时将cmd调到该路径下,输入pyinstaller -F ××.py

封装时各种坑
1、封装后还是200-300M,最终发现问题出在C:\Users\John\Anaconda3\envs\bt\Library\bin中,保留几个文件就可以,我是留的以下几个:
解决Python利用pyinstaller封装exe过大问题_第2张图片
2、调用pyinstaller时报错:
解决Python利用pyinstaller封装exe过大问题_第3张图片
提示numpy.core有问题,卸载numpy后重装即可:
解决Python利用pyinstaller封装exe过大问题_第4张图片
3、调用pyinstaller时报错缺少xlrd和openpyxl,这个比较简单,直接安装就好。

五、封装完毕

封装会产生三个文件夹+一个文件,可以在dist文件夹中找到exe文件,看到此时封装的exe文件已经小很多了,成功!
解决Python利用pyinstaller封装exe过大问题_第5张图片
(PS:如果直接运行exe没得到想要的结果,可以调用cmd运行exe,可以看到哪里出问题了!)

你可能感兴趣的:(pyinstaller)