血泪!pyinstaller打包文件过大的解决方法

血泪!pyinstaller打包文件过大的解决方法

记录一下踩的坑吧,都是血泪!


文章虽然水平不高,但是还是希望能够对大家有帮助


0x01:源头

最近因为课程原因简单做了一个GUI界面,因为老师要求课堂上进行展示,但是教学的电脑上并没有python环境,所以想到了要利用pyinstaller进行打包,让其成为exe可运行程序,应付作业,emmm…哈哈哈嗝~

0x02:题目描述

整个作业的内容是将一个文件从一个文件夹移动到另一个文件夹,作业本身没啥难度,直接使用python内置的shutil模块便可以一行搞定,但是奈何需要进行演示,然后自己又稍微增加了一点东西,做成了GUI界面。

0x03:效果描述

  1. GUI界面
  2. 完成文件搜索功能(用了深度优先的算法做了一下),指定文件类型(手动或者自动)
  3. 选择文件夹,目的文件夹

整个demo的样子就是这个鬼样子:
在这里插入图片描述
其实还有另外一种版本,我加了进度条的,但是是cmd的运行样子所以就不放上来了,进度条好像还挺好看的?

0x04:Pyinstaller打包

0x05:打包过程

  1. 直接切换到当前代码文件的cmd下运行pyinstaller -F -w -i icon.ico Program.py其中-w 是代表在运行exe的时候不会用DOS窗口的出现,-i 代表的则是使用图标 Program.py则是你要打包的代码文件
  2. 如果你打包成功会出现如下:在这里插入图片描述
    Succesful看到这个我们当然很激动了,并且在当前文件夹下你会发现一个distbulid文件还有用你的代码文件名命名的spec文件我们打包成功的exe文件就在dist文件夹下面,如下所示:
    在这里插入图片描述
    But What!!!
    在这里插入图片描述
    278M这…emm

0x06:重新打包( pipenv )方法

在网上搜索了解决方法,并且亲自尝试了,看网上的各路大神说法貌似是我使用的是anaconda环境打包了很多不必要的环境,并且在打包的过程成在cmd窗口下显示的提示信息也证明了我打包了很多的不必要的库,并且再提示一点能够用from 包 import 模块的方法就最好用这种能够减少很多不必要的内容。

  1. 首先如果在python中没有pipenv这个库先进行安装:pip install pipenv即可

  2. 然后在想要创建虚拟环境的文件夹中使用cmd命令:pipenv install python=3.7指定安装的python版本
    在这里插入图片描述
    上图红框为我们如果要在Pycharm中使用pipenv虚拟环境的使用的虚拟环境路径,之后会描述。

  3. 创建好后会在当前文件夹下生成一个Pipfile的文件,打开后可以对pipenv的安装源进行改变,并且使用如pipenv install requests进行包的安装在使用pipenv install requests之前要先进入pipenv shell
    在这里插入图片描述
    上图为Pipfiel文件的内容,可以改变url换不同的安装源。

  4. 并且如果我们不想要这个pipenv环境了我们可以使用pipenv --rm在这里插入图片描述

  5. .pipenv graph使用这条命名在shell环境下进行安装的包的依赖环境并利用pip list查看所安装的包,并且一定要安装pipenv install pyinstaller毕竟我们实要打包不是。
    在这里插入图片描述
    在这里插入图片描述

0x07:在Pycharm中使用( pipenv )环境

经过上面的配置我们已经重新配置好了一个新的干净的python环境,那么我们在工程中如何引入```Pycharm中呢。

  1. 打开Pycharm中的setting在这里插入图片描述
  2. 配置虚拟环境在这里插入图片描述
  3. 找到你得虚拟环境的路径,就是我们在0x05:打包过程说的那个红色框里的路径。在这里插入图片描述
  4. 并最后在Scripts文件中找到python.exe双击后最后应用到Pycharm中即可.
  5. 最后重新打包即可.
    在这里插入图片描述

0x08:查看最后重新打包的文件大小

最后一看在这里插入图片描述
8M多,虽然还是不小,但是应付作业应该还可以了emmm…我觉得

0x09:参考目录

[1] PyKK2019. Python虚拟环境和包管理工具Pipenv的使用详解–看完这一篇就够了[A/OL].(2019-04-28)[2019-04-28]. https://blog.csdn.net/weixin_41133061/article/details/8964720
[2] Hanniel. Pipenv使用入门 [A/OL].(2019-06-30)[2019-06-30]. https://blog.csdn.net/Hanniel/article/details/94294155
[3] 伍仔是牛仔. 解决pyinstaller打包exe文件过大(菜鸟一刀切傻办法)[A/OL].(2020-05-02)[2020-05-02]. https://blog.csdn.net/wuzaishiniuzai/article/details/105895715

  • 6
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值