把网站封装成小程序-Python3打包成exe并压缩,生成的文件很小

很多朋友都知道如何将Py程序打包成exe文件,而且很多人发现,一个简单的Py程序打包成exe文件后,编程容量有好几G。

如何将Python打包成exe,以及如何使其足够小。

1、标准包装

目前比较常见的打包exe的方法都是通过Pyinstaller来实现的,本文也将使用这些常规方法。 如果你已经熟悉这位男配了,可以直接跳到本文后半部分。

1、为什么要打包?

众所周知,Python脚本无法在没有安装Python的机器上运行。

那么如果我们写一个数据分析/手动办公的小脚本,我们想分享给朋友的小妹妹,但是她的笔记本没有安装Python。

这时,若果把脚本打包成exe文件,沫沫发给她了。 虽然她的笔记本上没有安装Python库,但是exe程序仍然可以在其中运行。 是不是很难过?

2.安装Pyinstaller

首先我们需要先安装Pyinstaller,在cmd中直接使用pip命令

pip install pyinstaller 

如果网速太慢,可以切换到国外源来加快速度。 本文其余部分直接引用国外资料,不再重复注释。

pip install -i https://pypi.douban.com/simple/ pyinstaller #豆瓣源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller #清华源

3.Pyinstaller打包步骤

这里以之前用Python手动批量编写Word晚报的代码为例进行演示。将脚本py_word.py、待处理的表格文件workbook.xlsx以及规划的软件图标图片 Chengzi.ico 放入我的笔记本的 F:py_word 目录

1.cmd切换到我们刚才放文件的目录

2、执行命令Pyinstaller-Fw-i Chengzi.icopy_word.py,执行过程很长,并且没有记录动画。

执行后会发现当前目录下多了几个文件夹,打开名为dist的文件夹。

已经生成了一个名为py_word的exe应用程序,图标也是我们设置的橙色图案。 看来已经成功一半了。

如果您不想运行,可以尝试正常生成Word晚报吗?

运行成功,可惜文件有点大(339M)

4.Pyinstaller参数解读

说回刚刚执行的命令

Pyinstaller -F -w -i chengzi.ico py_word.py

我给大家解释一下Pyinstaller的参数,其中

最后,稍微总结一下:

Pyinstaller -F py_word.py 打包exe
Pyinstaller -F -w py_word.py 不带控制台的打包
Pyinstaller -F -w -i chengzi.ico py_word.py 打包指定exe图标打包
以上三个是比较常用的参数,其他参数详见下表

Pyinstaller参数列表

5.ico图像生成

我喜欢在自己制作的软件上贴上自己的图标,但是哪里有那么多ico图片呢?

一是你可以找到专门的ico图片网站,但它们很冷门,图片库也很小。

另一个是你可以自己生成它。 这里给大家分享一个可以将其他格式的图片转换为ico格式的网站:

2、压缩包装

好吧,伙计们

最激动的时刻,刚才生成的exe太大了,用Momo传输一个300多M的软件程序需要费很大力气。

我也尝试过很多方法,比如:改变spec文件定制打包、pipenv虚拟环境、使用开源upx压缩等,而往往过程比较繁琐,或者成功率不高(取决于如果压缩不成功则面对)。

而我要分享的是我至今仍在使用的最简单且成功率很高的方法——conda来创建虚拟环境。

1.为什么Python的包这么大?

在压缩打包之前,先简单说一下为什么Python包太大?

Python打包的exe不仅体积大而且运行速度极慢。 大多数解释型语言都是这样,但Python尤为突出。 解决大而慢的问题,只有编译型语言,比如C、C++,甚至VB要好得多,而体积最小的是汇编。 [1]

据悉,也有知乎大鳄称,是因为“Anaconda进进出出的库非常多,打包的时候也打包了很多必要的模块,必须用纯Python来打包”。

因此我们可以模拟一个新的环境,其中只安装我们打包所需的工具包。

那么最适合的就是——虚拟环境!

2. 虚拟环境

在Python中创建虚拟环境的方法有很多,我是Anaconda的忠实用户。 如果你像我一样,那就很简单了。 (也可以使用Virtualenv、Pipenv搭建虚拟环境,善用搜索,技巧长篇大论)

先记住几个命令,很简单

conda create -n 虚拟环境名字 python==3.6  #创建虚拟环境
conda activate 虚拟环境名字  #激活虚拟环境
conda deactivate  #退出虚拟环境

从开始菜单运行“AnacondaPrompt”,在出现的界面上输入命令创建虚拟环境。 基于python 3.6版本成功创建了名为aotu的虚拟环境。

创建过程中需要回复(y/n)Yes,然后激活虚拟环境

conda安装的虚拟环境会在anaconda安装目录下的env目录下生成虚拟环境的目录。

其实我们也可以使用刚才窗口中的命令condainfo --envs来查看conda环境中的所有虚拟环境

3.安装所需的库

把网站封装成小程序-Python3打包成exe并压缩,生成的文件很小

我们之前已经创建并激活了名为 aotu 的虚拟环境,您可以通过输入 condalist 查看当前虚拟环境中已经安装的库。

我们打开需要打包的Python脚本,对比上图把网站封装成小程序,发现需要额外安装pandas和docx这两个库。 其实打包必不可少的pyinstaller库是不能缺少的。

安装库的过程不再多余

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

安装后看一下

已经安装成功了,有些是因为这些库才安装的,所以忽略它们。

4.Pyinstaller打包步骤

这里不再重复,尝试另一个苹果图标即可

Pyinstaller -F -w -i apple.ico py_word.py

产生

把网站封装成小程序-Python3打包成exe并压缩,生成的文件很小

成功压缩到29.8M,如果pandas的master不导出的话应该有10M多

运行一下没问题

最后简单总结一下虚拟环境+打包的整个过程(只有三步):

#创建虚拟环境
conda create -n aotu python=3.6
#激活虚拟环境
conda activate aotu
#Pyinstaller打包
Pyinstaller -F -w -i apple.ico py_word.py

5.总结一些小坑

1.听起来有点玄学。 我在上面的两个笔记本中执行了完全相同的过程。 其中一张显示缺少xlrd的库,安装后打包成功,大小也是一样。 男朋友们可以在文末获取文件,也来尝试一下。

2.安装库时要注意一些库名称。 例如,库 docx 不需要 pipinstalldocx,但需要

pip install python-docx

还有一些库可能因为版本不同而无法使用,只是碰壁的次数多了。

3.为了避免打包时某些库安装不正确,可以先在虚拟环境中执行Python脚本。 如果操作正确的话,再打包,这样更安全。

4.最后,如果想删除虚拟环境,可以执行以下命令

conda remove -n aotu--all 

5.

如果打包为exe的话,尽量选择python3.6+32位版本,因为win64位系统向上兼容32位程序,不考虑32位也没关系位系统,可以直接打包python64位版本,但只能在win64位系统中运行。

6.下载链接

测试Python打包,手头没有合适的文件把网站封装成小程序,这里是文章中所有文件链接: 提取码:kxpy

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站程序 把网站封装成小程序-Python3打包成exe并压缩,生成的文件很小 https://www.wkzy.net/game/154835.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务