使用Pyinstall将PyQT5工程打包成.exe应用程序(包含图标一同打包)

news2024/9/20 16:48:15

1.首先安装pyinstaller。

 pip install pyinstaller

2.PyQT5制作程序中使用到的ico等一系列图标文件,要先经过.qrc文件转成.py文件后,才可跟随打包文件一同打包。

  首先创建一个.qrc文件,将图片文件全部写进去,例如:

<RCC>
 <qresource>
 <file>111.ico</file>
 <file>222.png</file>
 <file>333.gif</file>
 <file>444.jpg</file>
 </qresource>
 </RCC>

        然后,使用pyrcc5命令,将.qrc文件转换成.py文件。

pyrcc5 resource.qrc -o resource_rc.py

转换后的.py文件如下:

3.需要在想要打包的***.py文件中将图片的路径写成这样:

palette1 = QPalette()
pix1 = QPixmap(":/111.jpg")
palette1.setBrush(QPalette.Background, QBrush(pix1))
demo.setPalette(palette1)
palette2 = QPalette()
pix2 = QPixmap(":/222.jpg")

4.在将要打包的***.py文件中将转后的.py文件import进去。

 import resource_rc.py 

5.1 单文件打包

  单文件打包会将整个项目和相关依赖都打包进一个exe,此时一般只需要发送exe文件给别人即可正常运行。它的缺点是:启动相对另一种打包方式更缓慢。
输入命令:

pyinstaller -w -F -i '.\Plot.ico' main.py

参数解释:
  -F :单文件打包
  -w:不要console(取消类似于cmd的黑框框)
  -i:后面接图标地址(图标一定要是标准的ico格式)
  最后面接的是要打包的程序:main.py

运行命令成功后:

  会生成三个文件夹和一个.spec文件,.exe在dist文件夹中。
 

5.2 单文件夹打包

  只需要将dist下的文件夹生成压缩包发给别人,别人解压,找到运行的exe即可运行程序。 相比于单文件打包命令, 只需将命令中的-F换成-D即可。

pyinstaller -w -D -i '.\Plot.ico' main.py

        打包完成后,同样生成了三个文件夹和一个.spec文件。 不同的是:在dist文件夹里生成了一个文件夹,而.exe就在该文件夹内。这种类型的打包启动速度相对比较快,但是不方便我们查找。而且需要我们格外小心,不要误删或者移动了里面的文件。

  PS:加 -F 虽然是生成了单个exe可执行文件,看上去很清爽,但是这个命令它把所有的环境都整合在了一起,如果我们的程序比较大的话,启动时就会非常慢(如果你的电脑性能一般的话,加载时间会更长)。因为它加载的数据都是静态加载的,需要去封装的包里一个个的去查找,所以速度变慢了。因此去掉 -F 之后,我们的启动速度流畅无比,体验效果也大大提升。去掉它之后,生成的dist文件中你程序中要用到的环境都会被放在dist中,这个时候所用到的环境就变成了动态加载的,速度就跟你用代码启动程序的速度是一样的。

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

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

相关文章

selenium 调用本地浏览器插件

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!selenium 使用本地浏览器插件 环境 win10Python3.9selenium 4.10查看chrome配置文件路径 地址栏输入 ​​…

Python 请求分页

文章目录 什么是 Python 中的分页带有下一个按钮的 Python 分页没有下一个按钮的 Python 分页无限滚动的 Python 分页带有加载更多按钮的分页 在本文中&#xff0c;我们将了解分页以及如何克服 Python 中与分页相关的问题。 读完本文后&#xff0c;我们将能够了解 Python 分页以…

TensorHouse仓库介绍

目录 1 TensorHouse介绍 2 说明性例子 3模型列表 4基本组件 5方法 6参考 7后续计划 1 TensorHouse介绍 代码仓库&#xff1a;GitHub - ikatsov/tensor-house: A collection of reference machine learning and optimization models for enterprise operations: marketi…

插入排序-C语言实现

&#x1f970;前言 &#x1f354;在学数据结构的第一节课就知道了数据结构课程是要管理并且学会操作数据&#xff0c;当然操作数据首先想到的就是数据的排序&#xff0c;排过顺序的数据的使用价值才够大。前面我们学习了顺序表也学习了链表等等&#xff0c;这些就是储存数据的方…

哲学家就餐问题

哲学家就餐问题是一个著名的一类同步问题&#xff0c;在并发编程领域&#xff0c;常用来解释线程同步的问题。 问题描述&#xff1a;五位哲学家围坐在一张圆桌旁&#xff0c;每个哲学家面前有一碗米饭和一只筷子。这五个哲学家都是苦于无法同时持有两只筷子&#xff0c;因为只…

Autosar软件组件-Application Layer介绍和SWC(Software Component)类型

参考前文Autosar-软件架构,可知整个架构从上到下分层依次为:应用层(Application Software Layer),运行时环境(Runtime Environment,RTE),基础软件层(Basic Software Layer,BSW),微控制器(Microcontroller)。 Application Layer由各种AUTOSAR Software Componen…

【备战秋招】每日一题:华东师范大学保研机试-2022-整数排序

为了更好的阅读体检&#xff0c;可以查看我的算法学习博客华东师范大学保研机试-2022-整数排序 题目内容 输入若干个int类型整数&#xff0c;将整数按照位数由大到小排序&#xff0c;如果位数相同&#xff0c;则按照整数本身从小到大排序。 例如, 输入:10 -3 1 23 89 100 9…

【第四次】21级计科计算机组成原理课外练习

【第四次】21级计科计算机组成原理课外练习 一、判断题二、单选题三、多选题四、填空题五、程序填空题 一、判断题 1-1 设机器数字长8位&#xff08;含1位符号位&#xff09;&#xff0c;若机器数BAH为原码&#xff0c;算术右移一位得到的结果为 9D H 。 T F 1-2 ALU中采用双…

spring 反射,BigDecimal,自定义注解的使用(aop)

反射 利用反射调用它类中的属性和方法时&#xff0c;无视修饰符。 获取Class类的对象&#xff08;三种方式&#xff09; Class.forName(“全类名”) &#xff08;推荐使用&#xff09;类名.class对象.getClass() 反射获取构造方法Constructor<?>[] getConstructors()…

Android 逆向之脱壳实战篇

作者&#xff1a;37手游安卓团队 前言 这篇文章比较干&#xff0c;比较偏实战&#xff0c;看之前建议先喝足水&#xff0c;慎入。 在学脱壳之前&#xff0c;我们先来复习一下&#xff0c;什么时候是加固&#xff1f; 加固本质上就是对 dex 文件进行加壳处理&#xff0c;让一些…

信号三大阶段之储存信号

目录 一、 信号三大阶段 二、信号储存相关概念 三、 理解概念 四、信号储存原理 五、信号集操作函数 一、 信号三大阶段 二、信号储存相关概念 实际执行信号的过程被称为信号递达&#xff08;Delivery&#xff09;。信号从产生到递达之间的状态被称为信号未决&#xff08;…

【Linux】初步认识Linux系统

Linux 操作系统 主要作用是管理好硬件设备&#xff0c;并为用户和应用程序提供一个简单的接口&#xff0c;以便于使用。 作为中间人&#xff0c;连接硬件和软件 常见操作系统 桌面操作系统 WindowsmacOsLinux 服务器操作系统 LinuxWindows Server 嵌入式操作系统 Linux …

从零搭建一台基于ROS的自动驾驶车-----1.整体介绍

系列文章目录 北科天绘 16线3维激光雷达开发教程 基于Rplidar二维雷达使用Hector_SLAM算法在ROS中建图 Nvidia Jetson Nano学习笔记–串口通信 Nvidia Jetson Nano学习笔记–使用C语言实现GPIO 输入输出 Autolabor ROS机器人教程 文章目录 系列文章目录前言一、小车底盘二、激…

Redis入门(三)

第5章 Redis的相关配置(redis.conf) 1&#xff09;计量单位说明,大小写不敏感 # 1k > 1000 bytes # 1kb > 1024 bytes # 1m > 1000000 bytes # 1mb > 1024*1024 bytes # 1g > 1000000000 bytes # 1gb > 1024*1024*1024 bytes # # units are case insensiti…

如何安装Apache服务

目录 什么是Apache 第一步 关闭防火墙和安全机制 第二步 系​统​上​定​义 SELinux 最​高​级​别 第三步 导入对应的依赖包并解包 第四步 安装依赖环境 第五步 移动相关文件 第六步 编译安装 第七步 编译 第八步 备份配置文件 第九步 优化执行路径 第十步 添加…

S32K324芯片学习笔记-实时控制系统-eMIOS

文章目录 Enhanced Modular IO Subsystem (eMIOS)eMISO配置通道类型通道配置BCTU Interface 简介功能框图Unified channels (UC)Buffered modesUC control and datapath diagramUC modesGPIO模式SAIC (Single Action Input Capture)模式Single Action Output Capture (SAOC) mo…

AI自动写代码:GitHub copilot插件在Idea的安装和使用教程

GitHub Copilot 是微软与OpenAI共同推出的一款AI编程工具&#xff0c;基于GitHub及其他网站的源代码&#xff0c;根据上文提示为程序员自动编写下文代码&#xff0c;可以极大地提高编写代码的效率。 先看看ChatGpt是怎么回答Copilot的功能特点&#xff1a; 给大家简单提取一…

【go】新手go module 踩坑入门rc_server

go1.3 后废弃了GOPATH 但是gomodule 要自己设置 :go env -w GO111MODULE=auto Microsoft Windows [版本 10.0.22621.1848] © Microsoft Corporation。保留所有权利。 C:\Users\zhangbin>adb connect 127.0.0.1:7555 connected to 127.0.0.1:7555 C:\Users\zhangbin&…

【计算机通识】未来的计算机

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、未来的计算机 2.1、光子计算机 2.2、生物计算机 2.3、量子计算机 3、总结 1、缘起 自然界中的一切事物都是处…

3d重建+神经渲染

3d重建 基于深度相机(结构光、TOF、双目摄像头)的三维重建基于图像的三维重建&#xff1a;深度学习基于视觉几何的传统三维重建&#xff1a;这种三维重建方法研究时间比较久远&#xff0c;技术相对成熟。主要通过多视角图像对采集数据的相机位置进行估计&#xff0c;再通过图像…