Tkinter打包成EXE安装文件

打包成 .exe可执行文件

1. 安装PyInstaller,命令如下:

pip install pyinstaller

2. 编写你的Tkinter应用程序: 创建一个Python文件,例如app.py,并写入你的Tkinter代码。

3. 在 app.py 文件所在的目录使用PyInstaller将app.py打包成 .exe文件

pyinstaller --onefile --windowed app.py

打包后的目录结构,exe文件就在 dist 目录中

PyInstaller 的选项说明

参数说明
--onefile将所有文件打包成一个可执行文件
--windowed适用于GUI应用,防止打开命令行窗口
--add-data将额外的数据文件(如图像或配置文件)包含到包中,例如--add-data "data.txt;."
--icon为生成的exe文件设置图标,例如 --icon=favicon.ico
--clean在构建之前清理临时文件
--noconfirm在构建时不提示确认覆盖现有文件
--hidden-import添加未被自动检测到的模块,例如 --hidden-import=module_name

打包成 .exe安装文件

1. 下载并安装 NSIS 程序,下载地址:https://nsis.sourceforge.io/Download

2. 创建 NSIS 脚本文件 setup.nsi,脚本内容如下(使用时去除脚本中的中文注释):

# 自定义安装程序的名称
Outfile "app-setup.exe"
InstallDir "$PROGRAMFILES\app"
RequestExecutionLevel adminPage directory
Page instfilesSection "MainSection" SEC01SetOutPath "$INSTDIR"# 使用PyInstaller 打包后的.exe可执行文件路径File "D:\app\dist\app.exe"# 创建桌面快捷方式CreateShortCut "$DESKTOP\app.lnk" "$INSTDIR\app.exe" "" "$INSTDIR\app.exe" 0WriteUninstaller "$INSTDIR\uninstall.exe"
SectionEnd# 卸载相关
Section "Uninstall"Delete "$INSTDIR\app.exe"Delete "$DESKTOP\app.lnk"Delete "$INSTDIR\uninstall.exe"RMDir "$INSTDIR"
SectionEnd

这里先看一下目录结构

3. 打开 NSIS 软件,选择Compile NSI scripts

4. 将 NSIS 脚本文件 setup.nsi 拖拽到上面的窗口中

把 NSIS 脚本文件拖入到窗口中后,如果脚本文件没有问题,就会直接生成.exe安装程序,如下:

5. 双击app-setup.exe文件进行安装。(如果想让其他人安装你的程序,就把app-setup.exe文件发给其他人安装即可)

6. 安装成功效果图,如下

安装目录

桌面快捷方式

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

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

相关文章

从零开始讲PCIe(5)——66MHZ的PCI总线与其限制

一、前言 在之前的内容中,我们已经基本了解了PCI总线的设计思路和传输机制,之前的内容我们都是基于33MHZ版本的PCI总线进行学习的,为了支持更到的带宽,PCI协议还有一种66MHZ的版本。 二、高带宽PCI(66MHZ)…

UML类图全解析

1.UML的基本介绍 1.1什么是UML 1.UML > 统一建模语言,是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。 2.UML本身是一套符号的规定,就像数学符号和化学符号一样,这样符号用于描述软…

dll动态库加载失败导致程序启动报错以及dll库加载失败的常见原因分析与总结

目录 1、问题说明 2、dll库的隐式加载与动态加载 2.1、dll库的隐式加载 2.2、dll库的显式加载 3、使用Process Explorer查看进程加载的dll库信息以及动态加载的dll库有没有加载成功 3.1、使用Process Explorer查看进程加载的dll库信息 3.2、使用Process Explorer查看动态…

交叠型双重差分法

交叠型双重差分法(Staggered Difference-in-Differences, Staggered DiD)是一种扩展的双重差分(Difference-in-Differences, DiD)方法,用于处理多个时间点的政策干预或处理组(treatment group)并…

JavaWeb的小结02

第2章-第2节 一、知识点 HttpServletRequest请求对象、HttpServletResponse响应对象、响应内容类型Content-Type、请求转发、重定向、ServletContext对象。 二、目标 深刻理解HttpServletRequest对象的作用。 深刻理解HttpServletResponse对象的作用。 掌握HttpServletRequ…

企业必备:搭建大模型应用平台实操教程

最近AI智能体很火,AI智能体平台化产品肯定属于大公司的。但在一些场景下,尤其是对业务数据要求很高的公司,那就只能用私有大模型。不一定完全是为了对外提供服务,对内改造工作流也是需要的。所以 我感觉未来大部分企业都会搞一个…

普渡PUDU MT1:AI赋能,破解大面积场景清洁新挑战

普渡AI智能扫地机器人PUDU MT1:破解大面积场景清洁难题的新利器 在仓储物流、工业车间、交通枢纽、大型商场等大面积场景中,清洁难题一直是管理者们头疼的问题。这些区域面积广阔,清洁任务繁重,传统清洁方式难以胜任。然而,普渡机器人最新推出的AI智能扫地机器人PUDU MT1…

什么是 HTTP Get + Preflight 请求

当在 Chrome 开发者工具的 Network 面板中看到 GET Preflight 的 HTTP 请求方法时,意味着该请求涉及跨域资源共享 (CORS),并且该请求被预检了。理解这种请求的背景,主要在于 CORS 的工作机制和现代浏览器对安全性的管理。 下面是在 Chrome …

ConcurrentHashMap在JDK1.7和1.8的区别,详解

目录 1.了解HashMap底层插入原理 2.ConcurrentHashMap 是什么? HashTable的实现 3.ConcurrentHashMap 1.7和1.8的区别 4、JDK1.7 中的ConcurrentHashMap实现原理 6、JDK1.8中的ConcurrentHashMap 7.链表转红黑树条件 1.8 put方法 8.并发扩容 9.总结 首先呢…

Origin正态分布检验

在spass中用Shapiro-Wilk检验--正态分布检测 Shapiro-Wilk检验--正态分布检测_spss shapiro-wilk检验-CSDN博客

数据服务-实时同步(sersync)

1. 概述 1.之前我们通过rsync定时任务实现定时备份/同步 2. 对于NFS我们需要进行实时同步 2. Sersync原理 3. 上手指南 环境主机web0110.0.0.7(nfs客户端)nfs0110.0.0.31(rsync客户端) (nfs服务端)backup10.0.0.41(rsync服务端) 3.1 rsync服务端准备 参考: 数据服务-备份服务…

好用便宜的头戴式耳机哪款好?强推四款高分爆单耳机精品!

音质,是耳机的灵魂。头戴式降噪耳机,以其卓越的音质表现,为您演绎音乐的真谛。无论是细腻的情感表达,还是震撼的音效体验,它都能让您感受到音乐的魅力所在。那好用便宜的头戴式耳机哪款好?,这里…

为什么芯片有多个不同的供电电压?

一、为什么芯片有多个不同的供电电压? 优化性能与功耗:芯片的核心部分(Core)和输入输出部分(IO)可能采用不同的电压。核心电压通常较低,以减少功耗和发热,提高能效;而IO电…

Linux驱动开发常用调试方法汇总

引言:在 Linux 驱动开发中,调试是一个至关重要的环节。开发者需要了解多种调试方法,以便能够快速定位和解决问题。 1.利用printk 描述: printk 是 Linux 内核中的一个调试输出函数,类似于用户空间中的 printf。它用于…

CSID-GAN:基于生成对抗网络的定制风格室内平面设计框架论文阅读

CSID-GAN: A Customized Style Interior Floor Plan Design Framework Based on Generative Adversarial Network 摘要前言II. CSID-GAN METHODA. Overall FrameworkB. Algorithm and Loss Function III. DATASETS AND EVALUATION METRICSA. DatasetsB. Evaluation Metrics IV.…

SAP MM学习笔记 - 豆知识10 - OMSY 初期化会计期间,ABAP调用MMPV/MMRV来批量更新会计期间(TODO)

之前用MMRV,MMPV来一次一个月来修改会计期间。 如果是老的测试机,可能是10几年前的,一次1个月,更新到当前期间,搞个100多次,手都抖。 SAP MM学习笔记 - 错误 M7053 - Posting only possible in periods 2…

【web安全】——逻辑漏洞

1.逻辑漏洞 1.1. 简介 逻辑漏洞就是指攻击者利用业务/功能上的设计缺陷,获取敏感信息或破坏业务的完整性。一般出现在密码修改、越权访问、密码找回、交易支付金额等功能处。 逻辑漏洞的破坏方式并非是向程序添加破坏内容,而是利用逻辑处理不严密或代码问题或固有不足&#x…

Timeline: 时间线轮播多图

对全国2014-2023年各省市的人口,做出动态柱状图/时间线轮播多图,即每隔一定时间间隔,自动的切换2014、2015、....2023各省市的人口(即2014-2023年全国省市人口排名前12的情况) 1、模板 # -*- coding: gbk -*- from pyecharts import option…

智慧农业案例 (二)- 智能化灌溉系统

橙蜂智能公司致力于提供先进的人工智能和物联网解决方案,帮助企业优化运营并实现技术潜能。公司主要服务包括AI数字人、AI翻译、领域知识库、大模型服务等。其核心价值观为创新、客户至上、质量、合作和可持续发展。 橙蜂智农的智慧农业产品涵盖了多方面的功能&…

使用Buildpacks构建Docker镜像

## 使用Buildpacks构建Docker镜像 ![](../assets/运维手册-Buildpacks-Buildpacks.io.png) ### Buildpacks简介 与Dockerfile相比,Buildpacks为构建应用程序提供了更高层次的抽象。具体来说,Buildpacks: * 提供一个平衡的控制,…