1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 解决pyinstaller打包exe文件过大(菜鸟一刀切傻办法)

解决pyinstaller打包exe文件过大(菜鸟一刀切傻办法)

时间:2022-07-27 08:59:24

相关推荐

解决pyinstaller打包exe文件过大(菜鸟一刀切傻办法)

pyinstaller打包exe文件过大

作为认真学习了Python两个多月的小白,觉得python还是有很多玄学,一直搞不懂明明一毛一样的步骤,为什么我用pyinstaller打包出来的exe有300M,别人只有30M!为了弄清楚介个问题,老姐姐真的是搞了几天几夜,参考了多个前辈的文档,通过自己的各种猜测终于搞好了,抑制不住自己澎湃的心情,想跟大家分享一下一些可能不是很成熟的想法。

part1不成熟的猜测

在很多文档里面都有写到过exe过大,可能是打包很多无用的模块和库,打包完后会有两个文件夹,build和dist,对比两次在build里PKG文件,在没打包成功前就是290多M,打包成功后就是29M,根据缩写和文件,我猜测PKG说明了打包模块和库有多大,所以打包了多余的包这个我认为是正确的。

我使用了各种包括建立虚拟环境的方法都没办法避免打包多余的包,当然太复杂看不懂的就没试了。但是在试的过程中,自己也进行了思考,和基友使用同一种打包方法,步骤一毛一样,为什么我不行呢?有什么不同的地方,那只能是安装的环境了。在各种不同的打包的过程中,我都明显看到会引用anaconda库,再加上很多文章说打包是会一起打包anaconda很多的已有包,所以暂时认为anaconda有影响。然后,根据建立虚拟环境的思路,是为了创造一个没有多余包的环境,我之前很多次安装需要的包时直接运行cmd后pip,可能也会导致pyinstaller打包整个环境安装过的包,因为我比较懒,懒得一条条实验,所以决定按着自己的思路,重新安装环境。

Part2重新安装环境

首先,先把自己的环境卸载干净,有意要试一试的需要百度如何干净卸载python+anaconda+pycharm。

完成卸载后,我决定不再安装anaconda,大家可以查一下不安装anaconda有什么影响,我暂时判断影响不大,因为pycharm用setting安装包也很方便,然后大家就可以正常安装python和pycharm了。

python安装这里有个坑,坑了我两天,就是python现在已经是3.8版了,但是pyinstaller貌似不支持3.8版本,没卸载anconda前,在pycharm 虚拟环境Teminal下打包完,打开exe程序会出Fail to execute script pyi_rth_pkgres。当时也是找了很多方法,但是没办法解决,后来没安装anaconda后,直接用pycharm安装,居然直接按不上!头都大了!无意间看到github下面的pycharm包的描述,支持的python是 3.5到3.7版本,之前又隐约看到什么降级解决,当时没搞懂什么意思,降什么级?到这里,大概猜测是不支持3.8版本,所以果断改安装了3.7版本,果然一切都顺利了,太爱自己了!

Part3规范自己的工程建立、包安装

作为菜鸟的我,真的是很菜很菜,自己真的是很大胆,随便点点能够运行得起来就不去探究具体的方式,沾沾自喜,觉得so easy,封装exe真的是教会了我做人。

重新安装好后我就决定要好好维护这个干净的环境。

step1:

pycharm建立工程使用虚拟环境,这个之前看到入门材料有写,最好使用virtualenv,建立虚拟环境然后这个环境就是独立的,包括安装各种库,都不会影响其他工程,

安装各种依赖库不要用cmd-pip,直接在pycharm工程里setting安装或者Teminal-pip,虽然我不确定有米有影响。

最后就是在pycharm Teminal运行:

pyinstaller -Fw XXX.py

然后还有一个菜鸟会遇到的问题,就是pycharm安装依赖库的时候经常因为镜像问题导致安装不上,推荐一个文pycharm创建虚拟环境venv和添加依赖库package - 一字千金 - 博客园 /bclshuai/p/12488341.html

超有用!!!

好勒,以上就是一个菜鸟不成熟的日志,今晚终于可以睡个好觉了。

补充若干打包exe问题

打包过程中经常存在打包完后打不开程序,这个是时候打包exe的时候可以先不屏蔽dos窗口,这样可以用来排查问题。

即使用:pyinstaller -F XX.py就行了

1.Fail to execute script pyi_rth_pkgres

这里可以看到原因是Pyinstaller No module named pkg_resources.py2_warn

查资料说是pyinstaller跟不上setuptools升级,把setuptools降级到44.0.0及以下

pip install setuptools==44.0.0

实验后解决

2.No module named ‘win32com’

打包好exe后,win10使用没问题,win7使用会出现

看着是pandas的库有问题,跟据setuptools经验对pandas降了级,还是有问题,因为是在pycharm terminal打包的,看了一下记录,会有No module named ‘win32com’

pycharm中没有导入pywin32,setting导入,打包成功。

后来试着不降级pandas,还是会有问题,具体要降到多少还没试,直接降到0.25版本了,现在最新是1.03。。。

然后就是待更新了。。。。。

python使人头秃,一直python一直秃。。。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。