别再问我Python打包成exe了!(终极版)

Python文件如何打包成exe文件 它是一个基于Distutils的实用程序,允许我们在Windows计算机上运行用Python编写的应用程序,而无需用户安装Python。注意:在Windows上安装PyInstaller之前,需要安装PyWin32(下载地址为-http://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/)。如果打包成功,最终的可执行文件app.exe和任何相关文件将放在dist目录中,如果该目录不存在,将创建该目录。删除生成文件夹是安全的。 阅读详情

Py程序打包成exe文件很多同学都会,但是很多人打包完发现: 一个简单的Py程序打包成exe文件之后编程几百兆了 ,今天将带大家学习 如何将python脚本打包成10多M的?

那今天小五就给大家全面总结一下:Python如何打包成exe,以及如何打得足够小。

一、标准打包

目前比较常见的打包exe方法都是通过 Pyinstaller 来实现的,本文也将使用这种常规方法。如果对这块已经很熟悉的小伙伴,可以直接下滑到本文下半部分。

1、为什么要打包?

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

那我们如果写了一个数据分析/自动化办公的小脚本,想分享给同事小姐姐使用,可她电脑又没有装Python。

这个时候如果将脚本打包成exe文件,微信发送给她,即使她的电脑上没有安装Python解释器,这个exe程序也能在上面运行。岂不美哉?

 

 

(当然,想通过帮安装Python跟小姐姐建立感情的话,就当我没说)

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 -F -w -i chengzi.ico py_word.py ,执行过程特别漫长,就没有录制动图。

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

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

要不运行一下,试试能否正常生成word日报?

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

 

 

4、Pyinstaller参数详解

说回刚刚执行的命令

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

给大家解释一下其中Pyinstaller的参数,其中 -F 参数代表制作独立的可执行程序。

-w 是指程序启动的时候不会打开命令行。如果不加-w的参数,就会有黑洞洞的控制台窗口出来。比如在刚才的脚本里我加一行 print('Hello World!') ,那么就不要放-w参数了,不然运行会报错,毕竟 Hello World! 需要在命令行里打印出来。此外, -w 参数在GUI界面时非常有用。

最后的 -i chengzi.ico 就是指设置自己的图标图案,因为默认打包图片是下图这样的。这个参数也可以写成 --icon=chengzi.ico

 

 

最后稍微总结一下:

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格式: https://app.xunjiepdf.com/img2icon/

二、压缩打包

好了,小伙伴们

来到了最激动人心的时刻,刚刚生成的exe实在太大了,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  #退出虚拟环境

从开始菜单运行“Anaconda Prompt”,出现的界面输入创建虚拟环境的指令。成功创建了一个名字为 aotu ,且基于python版本3.6的虚拟环境。

 

 

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

 

 

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

当然我们也可以在刚刚的窗口,使用命令 conda info --envs ,来查看conda环境下所有的虚拟环境

3、安装所需的库

上面我们已经创建并激活了名为 aotu 虚拟环境,输入 conda list 可以查看当前虚拟环境里已经安装的库。

我们打开所要打包的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

生成

成功压缩到29.8M,如果不导入pandas这位大神,应该就可以10多M了

运行一下,毫无问题

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

#创建虚拟环境
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这个库不要 pip install docx ,而是需要

pip install python-docx

还有一些库可能因为版本不同导致不能使用,多碰碰壁就好了。

3、为了防止打包时候有些库没安装好,可以先在虚拟环境中执行一下Python脚本。 运行无误的话再打包,比较保险。

4、最后,如果想要删除虚拟环境的话,可执行下方命令

conda remove -n aotu--all 

5、打包为exe的话,版本尽量选择python3.6+32位版本,因为win64位系统向下兼容32位程序,但是如果不考虑32位系统的话无所谓,直接python64位版本直接打包就可以,只是只能在win64位系统上跑。 [2]

7、下载链接

如果大家想测试Python打包,手头又没有合适的文件,这里给出文章中的所有文件链接:https://pan.baidu.com/s/1GsASKTrIqBaqO5UeVnC2wA 提取码:kxpy

 

近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地

 

python sdk打包完整教程 在一个典型的 api.py 文件中,通常包含与应用程序的 API 相关的代码,例如路由、请求处理、响应生成等。_.py 文件是 Python 包的一个重要组成部分,它定义了在导入包时需要执行的初始化代码。它从请求中获取资源的 ID,然后返回该资源的信息。在这个示例中,导入了 api.py 和 database.py 文件中的内容,使得用户在导入 SDK 时可以直接访问到这些内容。确保 README.md 清晰、简洁地介绍了你的 SDK,并提供了足够的信息让用户和开发者了解如何使用和贡献它。 阅读详情

相关推荐

如何将python文件打包成exe格式

文章目录如何将python文件打包成exe格式1、安装pyinstallerimage-202112172208230072、进入python文件的存储位置3、生成exe文件4、pyinstaller详解 如何将python文件打包成exe格式 1、安装pyinstaller 打开命令行,安装pyinstaller模块 pip install pyinstaller 若出现如下图所示的无法连接HTTPS的问题请参考文章:成功解决win10下 Can’t connect to HTTPS URL beca

一顿吃不饱的博客 2万+

6种打包Python代码的方法,让你的程序变成exe应用!

Python是一种高级编程语言,它具有易学易用、跨平台等优点,因此在开发中得到了广泛的应用。然而,Python代码需要在Python解释器中运行,这对于一些用户来说可能不太方便。因此,将Python代码打包成可执行文件(exe)是一种很好的解决方案。本文将介绍6种将Python代码打包成exe应用的方式。

lojloj的博客 8万+

Python打包成exe终极方案

众所周知,Python脚本不能在没有安装Python的机器上运行。那我们如果写了一个数据分析/自动化办公的小脚本,想分享给同事小姐姐使用,可她电脑又没有装Python。这个时候如果将脚本打包成exe文件,微信发送给她,即使她的电脑上没有安装Python解释器,这个exe程序也能在上面运行。岂不美哉?

weixin_56659172的博客 2万+

py 打包的6种方式

Python打包有几种方式取决于你的需求,以下是常见的几种方式:

qq_33240556的博客 8096

Python 打包 exe 指南

本专栏主要包括三部分内容,第一部分为如何将python文件打包为 exe 文件,Pyinstalle和Nuitka;第二部分为如何制作安装包Nsis和Inno Setup Complier,;第三部分主要讲述一些专业的包,如Pyside6、PySimpleGui、Pandas等在使用Nuitka打包时,遇到的错误汇总。

YumOS的博客 1万+

Nmap的介绍、安装 并进行网络扫描

Nmap概述 Nmap(Network Mapper(网络映射器))是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。 正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

Cheney ' blog 2万+

别再问我怎么Python打包成exe了!

作者 | Python进阶者来源 |Python爬虫与数据挖掘阅读文本大概需要 10分钟前言也许我们不一定是专业的程序员,但是我们仍然可以通过代码提高我们的效率,尽量少加班,多陪陪媳...

cainiao_python的博客 4万+

实验四 基于IDEA+SpringBoot+Maven+Thymeleaf的系统实现实验目的

通过这次实验,我学习了如何成功进行IDEA+SpringBoot+maven的系统实现,搭建好IDEA+SpringBoot+maven的系统环境,成功地安装并配置了maven的运行环境,学会了创建springboot的三种方式,并且能将之前的实验结合起来运用。pom.xml中引入thymeleaf依赖,在classpath:/templates/下新建HTML页面(可采用实验一创建的页面),新建controller进行测试,访问页面后返回success成功数据。同时掌握和thymeleaf的基本语法。

m0_73502929的博客 1379

将Python程序打包成exe文件

本文一步一步地教你如何将Python程序打包成exe文件!赶紧进来学习吧!

小康2022的博客 5万+

DSI3协议介绍

分布式系统接口(DSI)是一种通用且功能强大的总线协议,旨在将多个遥感器和执行器设备互连到中央控制模块。该网络的主要目标应用是汽车安全系统。这种应用的一些特点是需要低成本、高鲁棒性、中速互连,仅限于两根导线。此外,它必须具有故障安全性、确定性和良好的EMC特性。即使具有所有级别的智能和可编程性的设备都可以连接到网络,远程设备也必须能够通过简单的状态机实现。由于模块尺寸非常重要,因此中央模块和远程单元中的最小组件至关重要。

汽车电子软件领域知识分享 1万+

全新YOLOv11有效涨点改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

YOLOv11专栏持续更新500+种创新改进方案,涵盖卷积优化、注意力机制、主干网络、Neck特征融合、检测头、小目标检测等核心模块。提供独家创新点组合方案、模型轻量化改进及最新Mamba架构融合技术,配套完整实验代码和训练参数解析。订阅用户可加入专属答疑群,获取一键运行项目支持。专栏包含YOLOv11网络结构详解、配置文件解读等入门必读内容,助力科研论文发表与模型性能提升。限时开放订阅通道,提供多种涨点改进方案组合,满足不同研究需求。

Ai缝合怪、助力小伙伴高效发论文 3996

Python打包成exe文件_详细操作

前言 我原本是学C\C++,为了一个女生我踏上了不归路;这是本人第一篇关于python的文章。请多多关照! 对于python为什么要打包成exe文件,是因为传输源文件以及源代码给他人是需要配置好一定的环境才能进行编译操作,而打包成exe文件就可以跟电脑软件一样打开就可以运行也可以分享给他人。但是打包好的exe文件并不是很方便去拆包,所以在打包前一定要测试之后在打包发布。 版本控制方面尽量选择python3.6+32位版本,因为win64位系统向下兼容32位程序,如果不考虑32位系统的话无所谓,直接pyth

柳一航的博客 6万+

uni-app - 最详细 H5 网页接入微信登录功能,提供公众号配置与详细注释示例代码(移动端网页实现点击登录按钮后 调用微信公众号授权登录功能 详细讲解接入流程与详细示例代码)官方最新超级详细教程

uniapp中H5微信登录,uniapp H5微信授权登录,微信公众号第三方网页(H5)授权登录(OAuth2.0)流程及逻辑详细教程,UNIAPP 开发H5 怎么实现微信公众号登录功能,uniapp如何实现H5网页的公众号微信登录,怎么做uniapp微信登录,uniapp h5项目怎么实现微信登录的功能,uniapp微信浏览器H5授权微信登录,UniApp开发H5接入微信登录的全过程,uniapp的H5页面使用微信登录,uniapp H5微信授权登录,H5之微信授权登陆 (uniapp网页版微信授权登录)

🏆 前端领域优质创作者 7408

将python程序打包成exe

将python程序打包成exe,这样我们下次想要实用自己写的python时,就不需要打开python或者编辑器了,可以直接点了exe运行,是个比较实用的功能。 参考链接:https://www.cnblogs.com/mini-monkey/p/11195309.html 参考链接:https://blog.youkuaiyun.com/dyz_123456/article/details/80593966 参考链接:https://mp.weixin.qq.com/s/rL84_hBqH4CX-SmUXnjKA

简简单单 4万+

Java高频面试基础问题与知识点整理

Java高频面试知识点总结:覆盖高频基础知识考点+高频集合知识点深入分析+高频多线程与并发编程面试题汇总+其他扩展考察等。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

别再用LabelImg了!我手搓了一个C#“一站式”YOLO工具箱,标注训练推理全搞定

这个工具箱目前已经在两个小型产线项目中试用,反馈非常好。效率提升:原本需要 2 天完成的“数据准备 - 训练 - 验证”循环,现在缩短到了 2 小时。门槛降低:产线技术员经过 10 分钟培训,就能独立完成新产品的模型迭代。当然,它还有改进空间未来计划集成主动学习功能:自动筛选出置信度低的图片,推荐优先标注。支持多模型管理:方便在不同产品型号间快速切换。增加PLC 通信模块:直接在推理界面配置 IO 信号,实现真正的软硬联动。最后想说工具的本质是服务于人。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 441

Python打包成exe.文件教程分享

下载pyinstaller 因为Python中有很多三方包,我们想要这些三方包也包含在里面就需要一个工具,就是pyinstaller,很简单,直接在命令行输入pip install pyinstaller 或者使用镜像下载 pip install pyinstaller-i “https://mirrors.aliyun.com/pypi/simple” 将自己需要打包的代码放入刚刚下载的pyinstaller文件夹下 2.1 找到自己环境变量中配置的路径,比如我的路径就是“C:\Johnson\ID.

m0_67354902的博客 2万+

DFT笔记 DC/AC mode与Func

DFT scan可以分为DC和AC两种,区别如下图。

m0_61544122的博客 5721
上一篇: 小姨想开水果店,那我用Django做一个天天生鲜项目!
下一篇: 手把手教你用Python爬取存储数据,还能自动在Excel中可视化
pythonlaodi
博客等级 码龄6年 286粉丝 244原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值