血泪!pyinstaller打包文件过大的解决方法
作者:互联网
血泪!pyinstaller打包文件过大的解决方法
记录一下踩的坑吧,都是血泪!
文章虽然水平不高,但是还是希望能够对大家有帮助
文章目录
0x01:源头
最近因为课程原因简单做了一个GUI界面,因为老师要求课堂上进行展示,但是教学的电脑上并没有python
环境,所以想到了要利用pyinstaller
进行打包,让其成为exe
可运行程序,应付作业,emmm…哈哈哈嗝~
0x02:题目描述
整个作业的内容是将一个文件从一个文件夹移动到另一个文件夹,作业本身没啥难度,直接使用python
内置的shutil
模块便可以一行搞定,但是奈何需要进行演示,然后自己又稍微增加了一点东西,做成了GUI
界面。
0x03:效果描述
GUI
界面- 完成文件搜索功能(用了深度优先的算法做了一下),指定文件类型(手动或者自动)
- 选择文件夹,目的文件夹
整个demo
的样子就是这个鬼样子:
其实还有另外一种版本,我加了进度条的,但是是cmd
的运行样子所以就不放上来了,进度条好像还挺好看的?
0x04:Pyinstaller打包
0x05:打包过程
- 直接切换到当前代码文件的cmd下运行
pyinstaller -F -w -i icon.ico Program.py
其中-w 是代表在运行exe
的时候不会用DOS
窗口的出现,-i 代表的则是使用图标 Program.py则是你要打包的代码文件 - 如果你打包成功会出现如下:
Succesful
看到这个我们当然很激动了,并且在当前文件夹下你会发现一个dist
和bulid
文件还有用你的代码文件名命名的spec
文件我们打包成功的exe
文件就在dist
文件夹下面,如下所示:
But What!!!
278M这…emm
0x06:重新打包( pipenv )方法
在网上搜索了解决方法,并且亲自尝试了,看网上的各路大神说法貌似是我使用的是anaconda
环境打包了很多不必要的环境,并且在打包的过程成在cmd
窗口下显示的提示信息也证明了我打包了很多的不必要的库,并且再提示一点能够用from 包 import 模块
的方法就最好用这种能够减少很多不必要的内容。
-
首先如果在
python
中没有pipenv
这个库先进行安装:pip install pipenv
即可 -
然后在想要创建虚拟环境的文件夹中使用
cmd
命令:pipenv install python=3.7
指定安装的python
版本
上图红框为我们如果要在Pycharm
中使用pipenv
虚拟环境的使用的虚拟环境路径,之后会描述。 -
创建好后会在当前文件夹下生成一个
Pipfile
的文件,打开后可以对pipenv
的安装源进行改变,并且使用如pipenv install requests
进行包的安装在使用pipenv install requests
之前要先进入pipenv shell
上图为Pipfiel文件的内容,可以改变url换不同的安装源。 -
并且如果我们不想要这个
pipenv
环境了我们可以使用pipenv --rm
-
.
pipenv graph
使用这条命名在shell
环境下进行安装的包的依赖环境并利用pip list
查看所安装的包,并且一定要安装pipenv install pyinstaller
毕竟我们实要打包不是。
0x07:在Pycharm中使用( pipenv )环境
经过上面的配置我们已经重新配置好了一个新的干净的python
环境,那么我们在工程中如何引入```Pycharm中呢。
- 打开
Pycharm
中的setting
- 配置虚拟环境
- 找到你得虚拟环境的路径,就是我们在0x05:打包过程说的那个红色框里的路径。
- 并最后在
Scripts
文件中找到python.exe
双击后最后应用到Pycharm
中即可. - 最后重新打包即可.
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
标签:文件,pyinstaller,pipenv,血泪,python,文件夹,打包 来源: https://blog.csdn.net/weixin_44984627/article/details/115448645