关于打包的那些事,你必须记住的三件事,利用Python实现打包exe_打包成exe会做哪些事_49.99%的博客-程序员宅基地

技术标签: python  编程语言  

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

本文章来自腾讯云 作者:Python进阶者

想要学习Python?有问题得不到第一时间解决?来看看这里“1039649593”满足你的需求,资料都已经上传至文件中,可以自行下载!还有海量最新2020python学习资料。
点击查看

在这里插入图片描述

1 前言

嘿,各位小伙伴,晚上好呀,我相信各位小伙伴都是python的爱好者。也许我们不一定是专业的程序员,但是我们仍然可以通过代码提高我们的效率,尽量少加班,多陪陪媳妇。再不行,让代码替我们干着重复的工作,我们有节省出来的时间打游戏不好嘛,是吧,哈哈哈。

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

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

2 安装pyinstaller

首先安装pyinstaller,使用安装命令:pip3 install pyinstaller,如下图所示。
在这里插入图片描述

3 pyinstaller打包机制

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

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

4 Pyinstaller打包exe

这里呢,我就拿刚给同事写办公自动化脚本示例一下。源码示例效果,如下图所示。
在这里插入图片描述
1、我们来将这个.py的文件打包成一个exe,我们直接cmd切换到这个脚本的目录,执行命令:pyinstaller-F setup.py,如下图所示。
在这里插入图片描述
ps: -F参数表示覆盖打包,这样在打包时,不管我们打包几次,都是最新的,这个记住就行,固定命令。

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

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

在这里插入图片描述
4、我们把这个setup.exe拖到和setup.py平级的目录,我们来运行一下这个,效果图如下图所示。
在这里插入图片描述
5、这样,我们就完成了一个打包工作,如果别人需要,即使没有python环境,他依然可以运行。

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

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

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

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

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

在这里插入图片描述
9、默认打包图片,如下图所示。
在这里插入图片描述
10、加上 -i 参数之后,如下图所示,会形成一个类似风力发电机的logo图案。
在这里插入图片描述
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_49345590/article/details/112714581

智能推荐

服务器错误信息36887,TLS 协议所定义的严重错误代码是 10。Windows SChannel 错误状态是 1203..._吴聊创业金融的博客-程序员宅基地

报错的服务器为:两台cas 服务器,其它服务器都没有出错.所有操作系统版本都是:windows2012 (注:所有的系统都是全新的。)报以下错误ID都是36888\36887,很多。生成了一个严重警告并将其发送到远程终结点。这会导致连接终止。TLS 协议所定义的严重错误代码是 10。Windows SChannel 错误状态是 1203。从远程终点接收到一个严重警告。TLS 协议所定义的严重警告代..._36887

用T-SQL创建表并导入TCPH数据集的数据//删除数据库_tcph数据表-程序员宅基地

drop table PART;CREATE TABLE PART(P_PARTKEY int primary key,P_NAME varchar(55),P_MFGR char(25),P_BRAND char(10),P_TYPE varchar(25),P_SIZE int,P_CONTAINER char(10),P_RETAILPRICE decimal,P_COMMENT varchar(23))TRUNCATE TABLE PART;BULK INSERT PART_tcph数据表

Windows 11 恢复到 win10的右键经典菜单_windows11classic context_Jomesm的博客-程序员宅基地

Windows 11 恢复到 win10的右键经典菜单官网下载地址:https://www.sordum.org/14479/windows-11-classic-context-menu-v1-0/一、如果您想从 Windows 11 上下文菜单中删除“显示更多选项”条目并恢复 Windows 11 中的经典右键单击菜单,您可以使用以下注册表项。通过注册表在 Windows 11 中恢复完整的右键单击上下文菜单[HKEY_CURRENT_USER\Software\Classes\CLSI_windows11classic context

xwork-2.1.2.jar与xwork-core-2.1.6.jar的区别是什么? 在线等待 先谢谢了_dhptkq9465的博客-程序员宅基地

两个包是一样,都是struts2的核心包。不过有时下在的struts2的jar包中只有xwordk-core-2.1.6.jar包。做项目的时候最好两个都导入。转载于:https://www.cnblogs.com/telwanggs/p/5357991.html..._xwork-2.1.2.jar

centos 7 svn 安装脚本搭建主从同步灵活切换-程序员宅基地

svn 脚本下载 http://opensource.wandisco.com/subversion_installer_1.9.sh 2019-Aug-20 12:20:4810.1Kapplication/x-sh#!/bin/bash{ svn=`svnserve --version | awk 'NR==1{print $3}'|wc -l`}...

随便推点

Java代码中转码 中文字符转UTF-8编码_java 汉字ut-8编码_Android移动开发者的博客-程序员宅基地

[java] view plain copy import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; public class Test { public static vo_java 汉字ut-8编码

Linux 安装与使用H2数据库_linux中怎么查看h2数据库数据_ESOO的博客-程序员宅基地

很多人在windows平台上使用过H2数据库,但是安装到linux,还不知道怎么做,现在,跟着我一起在linux安装:1,下载jar包 下载h2-1.3.176.jar 这个包(部分服务版本不一致,请自行更换版本)2,启动服务 复制到linux服务器 /opt/h2/bin/ 下 在目录下启动 3,使用web工具_linux中怎么查看h2数据库数据

我们承包了云栖大会阿里大数据专场,10月11日请你来_杭州云栖大会承包单位_Mc顽固份子的博客-程序员宅基地

点击查看全文2017杭州云栖大会即将拉开大幕。每年杭州站的云栖大会都是最受互联网、科技人士关注,一票难求。今年,阿里数据承包了云栖大会阿里大数据分论坛!整整一个上午7个分享,集中分享年度高精尖的阿里数据技术及应用。2017杭州云栖大会不仅会展现阿里巴巴集团最新的科技理念和产品,还会凝聚全球黑科技好玩的东东哦。大会包含2场主论坛、20+场前沿峰会、110+场分_杭州云栖大会承包单位

如何搭建内网地图服务器_如何搭建地图服务器-程序员宅基地

这里,在本地的离线地图就发布完成了,在没有网络的情况下,我们也可以调用本机上下载的离线地图数据在BIGEMAP软件上操作,包括标绘点线面,保存,打开数据等等。原文链接:https://blog.csdn.net/bigemap/article/details/120241388。原文链接:https://blog.csdn.net/bigemap/article/details/120241388。上图所示: ①选在你需要使用离线地图的范围,然后双击下载,也可以用矩形框,多边形框住下载;_如何搭建地图服务器

MySQL数据库(入门资料文档下载分享)_h532600610的博客-程序员宅基地

一、数据库(DataBase) 二、mysql优势(Why MySQL?) 三、安装和配置MySQL 四、mysql语句学习 五、相关书籍学习数据库的时间并不长,在MySQL的学习上走了一些弯路。在此与大家分享数据库入门的一些文档资料,希望对大家的学习有所帮助。

练习2-14 求奇数分之一序列前N项和(15 分)water_Cathy1122334455的博客-程序员宅基地

#include<stdio.h>int main(){ int n,i=0; double S=0; scanf("%d",&n); for(i=1;i<2*n;i+=2){ S=S+1.0/i; } printf("sum = %.6f",S); return 0;}_奇数分之一序列

推荐文章

热门文章

相关标签