cmd python封装成exe_别再问我怎么Python打包成exe了!

5a2abfb011744909c55389a0461c8147.png

也许我们不一定是专业的程序员,但是我们仍然可以通过代码提高我们的效率,尽量少加班,多陪陪媳妇(如果有)。再不行,让代码替我们干着重复的工作,我们有节省出来的时间打游戏不好嘛,是吧,哈哈哈。

但是呢,我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的xx.py文件发给他,他是不能直接用的,他还需要安装python解释器,甚至还要安装我们用的那些第三方包,是不是有点小麻烦?但是我们都知道,PC是可以直接运行exe文件的,这就为我们提供了一个便捷的方式。所以,从看了这个教程以后,这都将成为过去式,打成exe之后,分享即可用。

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

安装pyinstaller

首先安装pyinstaller,使用安装命令:pip3 install pyinstaller,如下图所示。

38049870bc1f8b6d259e5a6c2f23de9f.png

pyinstaller打包机制

我们写的python脚本是不能脱离python解释器单独运行的,所以在打包的时候,至少会将python解释器和脚本一起打包,同样,为了打包的exe能正常运行,会把我们所有安装的第三方包一并打包到exe。

即使我们的项目只使用的一个requests包,但是可能我们还安装了其他n个包,但是他不管,因为包和包只有依赖关系的。比如我们只装了一个requests包,但是requests包会顺带装了一些其他依赖的小包,所以为了安全,只能将所有第三方包+python解释器一起打包。如下图所示。

ca91c4c104df1c0fa422b01f28f69c35.png

蓝色表示是安装requests依赖的包,看到了吧!

Pyinstaller打包exe

这里呢,我就拿刚给同事写办公自动化脚本示例一下。源码示例效果,如下图所示。

d7f2872b259e554ca196356020aee91c.png

1、我们来将这个.py的文件打包成一个exe,我们直接cmd切换到这个脚本的目录,执行命令:pyinstaller-F setup.py,如下图所示。

5c541657db3ff2420851eb8caaa08584.png

ps: -F参数表示覆盖打包,这样在打包时,不管我们打包几次,都是最新的,这个记住就行,固定命令。

2、执行完毕之后,会生成几个文件夹,如下图所示。

cb35401c283adb68dfb6d3178c407124.png

3、在dist里面呢,就有了一个exe程序,这个就是可执行的exe程序,如下图所示。

a1d39208c9842020e07ea3c17ad87d4b.png

4、我们把这个setup.exe拖到和setup.py平级的目录,我们来运行一下这个,效果图如下图所示。

fa94ea854c3ed387f968fbe63b917e92.png

5、这样,我们就完成了一个打包工作,如果别人需要,即使没有python环境,他依然可以运行。

6、接下来我们再来打包一个带界面的,这里我用pyqt5写了一个最简单的框架,看一下打包成exe是否能运行成功,效果图如下图所示。

cf7794c660c3100ca37fe32ceb2bef19.png

我们可以看到,后面有一个黑洞洞的窗口,这就有点尴尬了,所以,我们的打包命令也要变一下。

7、执行 pyinstaller -F -wsetup.py 多加-w以后,就不会显示黑洞洞的控制台了,这里就不做演示啦!

8、但是我们打包的exe,我们的图标呀,实在是有点丑陋,默认的,没有一点自己的风格,那么,我们应该怎么改一下呢?

执行命令:pyinstaller -F -w-i wind.ico setup.py,如下图所示。

d3964d35d4081b60043adb7a6f705818.png

9、默认打包图片,如下图所示。

4804651a0a61b16c66d1a8be981c5416.png

10、加上 -i 参数之后,如下图所示,会形成一个类似风力发电机的logo图案。

0949597adf0cf75d5b9cb911c64937cf.png

ps:程序路径最好全部都是英文,否则可能会出现莫名其妙的问题

11、到此,我们能用到的pyton打包成exe命令都总结完了

总结命令

Pyinstaller -F setup.py 打包exe

Pyinstaller -F -w setup.py 不带控制台的打包

Pyinstaller -F -i xx.ico setup.py 打包指定exe图标打包

平常我们只需要这三个就好了,足够满足所有需求了。

结语

到这之后呢,python打包成exe基本算是结束了,记得一定要把pip升级成最新版的pip在安装pyinstaller哈。要不然可能会出现莫名奇妙的问题。

不信的话小伙伴们可以自己试试看,多碰碰壁也是可以学到很多的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

监听router_深入揭秘前端路由本质,手写 mini-router

前言前端路由一直是一个很经典的话题,不管是日常的使用还是面试中都会经常遇到。本文通过实现一个简单版的 react-router 来一起揭开路由的神秘面纱。通过本文,你可以学习到:前端路由本质上是什么。前端路由里的一些坑和注意点。hash 路由和 …

AI应用开发基础傻瓜书系列附录-基本数学导数公式

基本函数导数公式 Copyright © Microsoft Corporation. All rights reserved. 适用于License版权许可 更多微软人工智能学习资源,请见微软人工智能教育与学习共建社区 Content01.0-神经网络的基本工作原理01.1-基本数学导数公式01.2-Python-Numpy库的点滴02.…

5gh掌上云计算认证不通过_阿里云ACP认证考试攻略、考试心得、费用及常见问题...

阿里云ACP级认证是阿里云的专业工程师认证,云吞铺子分享ACP认证考试攻略、考试心得、考试费用及常见问题:ACP认证分类ACP认证根据所属领域不同分为五类,即即云计算、大数据、大数据分析师、云安全、企业互联网架构,考试方向不同考…

AI应用开发基础傻瓜书系列2-神经网络中反向传播与梯度下降的基本概念

AI应用开发基础傻瓜书系列2-神经网络中反向传播与梯度下降的基本概念 Copyright © Microsoft Corporation. All rights reserved. 适用于License版权许可 更多微软人工智能学习资源,请见微软人工智能教育与学习共建社区 Content01.0-神经网络的基本工作原理0…

verilog异步复位jk触发器_Verilog专题(九)DFF、Dlatch、JK flipflop

DFF、Dlatch、JK flip-flop对于verilog的学习,这里推荐一个比较好的实践网站HDLBits:https://hdlbits.01xz.net/wiki/Main_Page本系列记录一些我觉得有价值的题目,希望通过这些题目可以对verilog更加熟练。D flip-flops D触发器根据复位的…

AI应用开发基础傻瓜书系列3-激活函数和损失函数

Copyright © Microsoft Corporation. All rights reserved. 适用于License版权许可 更多微软人工智能学习资源,请见微软人工智能教育与学习共建社区 Content01.0-神经网络的基本工作原理01.1-基本数学导数公式01.2-Python-Numpy库的点滴02.0-反向传播与梯度下…

中两个数做减法_人生下半场,学会做减法

作者:洞见余生人生如逆旅,你我皆行人。梭罗在瓦尔登湖中写道:“一个人,只要满足了基本生活所需,不再汲汲于声名,不再汲汲于富贵,便可以更从容,更充实地享受人生。”曾经觉得&#xf…

AI应用开发基础傻瓜书系列3-激活函数

Copyright © Microsoft Corporation. All rights reserved. 适用于License版权许可 更多微软人工智能学习资源,请见微软人工智能教育与学习共建社区 Content01.0-神经网络的基本工作原理01.1-基本数学导数公式01.2-Python-Numpy库的点滴02.0-反向传播与梯度下…

cifs挂载 mount ubuntu_centos或者Ubuntu挂载windows10文件夹

一、centos挂载windows文件夹格式:mount -t cifs //IP/share-folder /mnt-point -o usernameyour-username,passwdyour-password或者mount //192.168.1.100/www /usr/local/nginx/html/ -o username"你的window管理员账号",password"你的window管理…

AI应用开发基础傻瓜书系列3-损失函数

Copyright © Microsoft Corporation. All rights reserved. 适用于License版权许可 更多微软人工智能学习资源,请见微软人工智能教育与学习共建社区 Content01.0-神经网络的基本工作原理01.1-基本数学导数公式01.2-Python-Numpy库的点滴02.0-反向传播与梯度下…

五大质量工具详解及运用案例_掌握质量管理五大工具,实现九段质量管理成长...

对于工厂企业来说,产品的质量是企业经营的命脉,那么质量管理工作要怎么去做好就是一个关键。今天给大家分享关于质量管理五大核心工具的内容,那何为五大工具,他们都有什么特点,又有何要求?我们将其中的主要…

双层板在哪层覆铜_PCB覆铜箔层压板分类和工艺解析

PCB覆铜箔层压板随着电子信息产业的快速发展,电子产品和电路组装技术也迈上了一个新的台阶。它推动了pcb制造技术向微孔径、细线、高密度布线、多层化方向发展。对覆铜板的耐热性、低膨胀系数、高尺寸稳定性和低介电损耗提出了新的要求。①PCB覆铜箔层压板分类PCB覆…

现代软件工程 作业 团队冲刺阶段的要求

1. 对团队冲刺的要求 团队在日期区间任选 10 天进行冲刺 (sprint),每天冲刺要在当天固定时间点发布一篇随笔。具体的博文规范如下: 每篇博客的要求: ① SCRUM: 每个成员描述:我昨天的成就(完成了哪个任务,花了多少时间…

两个numpy取相同值_闲谈Numpy的切片规则

我想说在学numpy库的时候切片真的让我有点痛苦的,逗号分号括号数字交织在一起刚开始看的我简直脑袋要爆炸,不过后来静下心来仔细看了看,发现其实也米有这么复杂,毕竟基于python的numpy库也是遵循着特定的语法的。今天就来聊聊这个…

微软开源自动机器学习工具 – NNI安装与使用

微软开源自动机器学习工具 – NNI安装与使用NNI的众多特点开启你的第一次NNI之旅 安装 三步准备实验(1) 准备搜索空间(2) 准备实验代码(3)定义实验配置 一行命令开始训练 webUI查看结果扩展阅读 基础定义 扩…

神经网络基本原理简明教程-0-Python-Numpy库的点滴

Python中的Numpy的基本知识 Copyright © Microsoft Corporation. All rights reserved. 适用于License版权许可 更多微软人工智能学习资源,请见微软人工智能教育与学习共建社区 以下列出一些关于Numpy矩阵运算的基本知识和坑点。 首先需要在命令行中安装Num…

神经网络基本原理简明教程-0-基本函数导数公式

基本函数导数公式 Copyright © Microsoft Corporation. All rights reserved. 适用于License版权许可 更多微软人工智能学习资源,请见微软人工智能教育与学习共建社区 如何浏览本系列教程 由于里面包含了大量必要的数学公式,都是用LaTex格式编写…

微软发布人工智能教育与学习共建社区

步入2019,人工智能(Artificial Intelligence)的浪潮依然汹涌,各国对于AI人才的需求进一步加大:2月,美国总统特朗普签署行政命令,正式启动美国人工智能计划;加拿大正通过“全球技能战…

流量复制_快速体验之《gor+diffy实现线上流量复制到测试环境》

对于没有副作用的接口(重复发送不会产生两份数据、不会产生多余的监控统计等等),就可以用这种方式方便的做回归测试。 部署三个不接外部流量的服务,两份老版本、一份新版本,把生产环境的流量复制到 Diffy 上。 如果生产环境支持通过请求头之类…

顶级程序员的心得 –– Coders at Work

顶级程序员的心得 –– Coders at Work说明:这篇文章是我 2010 年的原创,但是发现 csdn 的版本把格式全部搞坏了,原文在这里 我2009年读了 “Coders at Work”, 这是作者对15 位顶级程序员的采访, 总共600页。 从采访的模式看&…