PyQt6 利用Pyinstaller打包发布程序

锋哥原创的PyQt6视频教程:

2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计53条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~、第2讲 PyQt6库和工具库QTDesigner安装与配置、第3讲 PyQt6第一个程序HelloWorld实现等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV11C4y1P7fj/PyQt6程序的打包发布,即将.py代码文件打包成可以直接双击执行的.exe文件,在Python中并没有内置可以直接打包程序的模块,而是需要借助第三方模块实现。打包Python程序的第三方模块有很多,其中最常用的就是Pyinstaller。

安装Pyinstaller

pip install Pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple

打包普通Python程序

普通Python程序指的是完全使用Python内置模块或者对象实现的程序,程序中不包括任何第三方模块。使用Pyinstaller打包普通Python程序的步骤如下。

打开系统的CMD命令窗口,使用cd命令切换到.py文件所在路径(如果.py文件不在系统盘C盘,需要先使用“盘符:”命令来切换盘符),然后输入“pyinstaller -F 文件名.py”命令进行打包

下面是一些常用的命令行选项:

-F:将所有文件打包为一个单独的可执行文件。 -D:将所有文件打包为一个目录,包含可执行文件和所有依赖的文件。 -c:将程序与命令提示符结合在一起,以便在命令提示符下运行。 -d:将调试信息打包进可执行文件中。 –onefile:将所有文件打包为一个单独的可执行文件。 -o:指定输出文件的位置。 -w:打包为窗口文件。 -p DIR, –path=DIR:设置导入路径,从而导入需要的模块

测试代码:

"""作者 : 小锋老师官网 : www.python222.com
"""
import time
​
if __name__ == '__main__':print("hello Wolrd python222")time.sleep(3000)

打包命令:

pyinstaller -F helloworld.py

dist目录,可以找到打包生成的 helloworld.exe 可执行文件。

双击运行:

打包PyQt6程序

前面使用“pyinstaller -F”命令可以打包没有第三方模块的普通Python程序,但如果程序中用到了第三方模块,在运行打包后的.exe文件时就会出现找不到相应模块的提示。

我们就以打包PyQt6程序为例进行详细讲解。

PyQt6是一个第三方的模块,可以设计窗口程序,因此在使用pyinstaller命令打包其开发的程序时,需要使用--paths指定PyQt6模块所在的路径;另外,由于是窗口程序,所以在打包时需要使用-w指定打包的是窗口程序,还可以使用--icon指定窗口的图标。

pyinstaller --paths PyQt6模块路径 -F -w --icon=窗口图标文件 文件名.py

参数说明:

  • --paths:指定第三方模块的安装路径。

  • -w:表示窗口程序。

  • --icon:可选项,如果设置了窗口图标,则指定相应文件路径;如果没有,则省略。

  • 文件名.py:窗口程序的入口文件。

我们打包以前学习的加法程序。

pyinstaller --paths D:\python\python3\Lib\site-packages\PyQt6\Qt6\bin -F -w --icon=favicon32.ico 信号与槽Main.py

双击执行:

执行报错,找不到ui文件。

这里注意,所有的项目资源文件,包括Ui,图片等资源文件,都要放到dist目录下。

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

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

相关文章

LangChain 30 ChatGPT LLM将字符串作为输入并返回字符串Chat Model将消息列表作为输入并返回消息

LangChain系列文章 LangChain 实现给动物取名字,LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索I…

装前必看施工干货,贴瓷砖的5大步骤。福州中宅装饰,福州装修

亲爱的朋友们,你们是否曾经在装修房屋时遇到过贴砖的难题呢?贴砖可是装修工程中一项重要的工艺,它直接影响到整个装修的效果和质量。今天,我就来跟大家分享一下贴砖的几个重要要点,希望对你们有所帮助。 1️⃣ 选材是关…

2023 年人工智能研究与技术排名前 10 的国家

人工智能研究是一项全球性的工作。虽然美国和中国因其对人工智能的贡献而备受关注,但事实是,世界各国都在涉足这项技术,尝试新的突破,并吸引投资者的关注。 斯坦福大学的《2023年人工智能报告》估计,到 2022 年&#…

使用宝塔面板部署前端项目到服务器

目录 文章目录 前言 一、第一步:创建文件夹 二、第二步:部署前端项目 三、第三步:打开防火墙 文章目录 前言第一步:创建文件夹第二步:部署前端项目第三步:打开防火墙总结 前言 在此之前,我…

Python学习路线 - Python语言基础入门 - Python基础综合案例 - 数据可视化 - 地图可视化

Python学习路线 - Python语言基础入门 - Python基础综合案例 - 数据可视化 - 地图可视化 基础地图使用基础地图演示基础地图演示 - 视觉映射器 疫情地图-国内疫情地图案例效果数据整理 疫情地图-省级疫情地图省疫情地图 基础地图使用 基础地图演示 代码示例: &quo…

【Spring实战】02 配置多数据源

文章目录 1. 配置数据源信息2. 创建第一个数据源3. 创建第二个数据源4. 创建启动类及查询方法5. 启动服务6. 创建表及做数据7. 查询验证8. 详细代码总结 通过上一节的介绍,我们已经知道了如何使用 Spring 进行数据源的配置以及应用。在一些复杂的应用中,…

【SpringMVC】REST(Representation State Transfer)ful开发

REST全称Representation State Transfer,表现形式状态转换 文章目录 1. 为什么提出了REST?2. RESTful入门案例案例代码修改请求方式修改成RESTful风格,并以POST方式提交 RESTful格式下传参RESTful入门案例总结RequestBody,Reques…

Redis-运维

转自 极客时间 Redis 亚风 原文视频:https://u.geekbang.org/lesson/535?article681062 Redis 同步 Redis主从数据同步,主从第⼀次同步是全量同步 replicaof 主机 端口 #当前这个机器做Master的备份master如何判断slave是不是第⼀次来同步数据: Repl…

第11章 GUI Page400~402 步骤二 画直线

运行效果: 源代码: /**************************************************************** Name: wxMyPainterApp.h* Purpose: Defines Application Class* Author: yanzhenxi (3065598272qq.com)* Created: 2023-12-21* Copyright: yanzhen…

谷歌推大语言模型VideoPoet:文本图片皆可生成视频和音频

Google Research最近发布了一款名为VideoPoet的大型语言模型(LLM),旨在解决当前视频生成领域的挑战。该领域近年来涌现出许多视频生成模型,但在生成连贯的大运动时仍存在瓶颈。现有领先模型要么生成较小的运动,要么在生…

蓝桥杯 1223 第 2 场 小白入门赛

蓝桥小课堂-平方和 模拟 1 2 2 2 3 2 ⋯ n 2 n ⋅ ( n 1 ) ⋅ ( 2 n 1 ) 6 1^22^23^2\cdotsn^2\dfrac{n\;\cdot\;(n 1)\;\cdot\;(2n1)}{6} 122232⋯n26n⋅(n1)⋅(2n1)​。 write(n * (n 1) * (n * 2 1) / 6);房顶漏水啦 m a x ( 最大的行 − 最小的行 , 最大的列 −…

九:爬虫-MongoDB基础

MongoDB介绍 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其…

Tomcat与Netty比较

Tomcat介绍Tomcat支持的协议Tomcat的优缺点Netty介绍Netty支持的协议Netty的优点和缺点Tomcat和Netty的区别Tomcat和Netty的应用场Tomcat和Netty来处理大规模并发连接的优化Tomcat与Netty的网络模型的区别Tomcat与Netty架构设计拓展 Tomcat介绍 Tomcat是一个免费的、开放源代码…

JavaOOP篇----第十五篇

系列文章目录 文章目录 系列文章目录前言一、有没有可能两个不相等的对象有相同的hashcode二、拷贝和浅拷贝的区别是什么?三、static都有哪些用法?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通…

RabbmitMQ基础

RabbmitMQ基础 1.1 什么是MQ MQ(Message Queue),从字面意思看,本质是个队列,FIFO先入先出,队列中存放的是message。是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游…

10 NAT网络地址转换

广域网技术 上面聊的内容都是内网的一些配置,但内网终将要访问外网的,我们需要怎么处理呢?一般使用HDLC(高级数据链路控制协议)或者PPP(点对点协议)。 使用PPP安全接入Internet PPP&#xff0…

PHP函数定义和分类

函数的含义和定义格式 在PHP中,允许程序员将常用的流程或者变量等组件组织成一个固定的格式实现特定功能,也就是说函数是具有特定功能特定格式的代码段。 函数的定义格式如下: function 函数名(参数1,参数2,参数n) {…

基于SSM的双减后初小教育课外学习生活活动平台的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

ESP8266网络相框采用TFT_eSPI库TJpg_Decoder库mixly库UDP库实现图片传送

用ESP8266和TFT_ESPI模块来显示图片数据。具体来说,我们将使用ILI9431显示器作为显示设备,并通过UDP协议将图片数据从发送端传输到ESP8266。最后,我们将解析这些数据并在TFT屏幕上显示出来。在这个过程中,我们将面临一些编程挑战&…

STM32 支持IAP的bootloader开发,使用串口通过Ymodem协议传输固件

资料下载: https://download.csdn.net/download/vvoennvv/88658447 一、概述 关于IAP的原理和Ymodem协议,本文不做任何论述,本文只论述bootloader如何使用串口通过Ymodem协议接收升级程序并进行IAP升级,以及bootloader和主程序两个工程的配置…