【python】tkinter程序打包成exe可执行文件相关知识点记录

打包流程:

  1. 进入带打包的文件夹目录,输入“cmd”
    在这里插入图片描述

  2. 在cmd对话框中输入
    pyinstaller -F -w -i 【exe图标位置(ico文件)】【程序入口文件】
    pyinstaller -F -w -i i.ico test.py
    具体如图,图片摘自python利用pyinstaller打包简明教程
    https://www.jianshu.com/p/48f6dea265eb

  3. 运行完成后,文件夹下会新增三个文件,bulid、dict和一个.spec文件,其中dict文件夹下有打包好的exe文件。

注意事项:

  1. 文件夹路径貌似必须是英文,因为我第一次打包路径有中文,结果打包失败,提示
    json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    改成英文后,打包成功了(不太清楚是不是这个原因)。
  2. 打包成功后,出现了提示,我也不清楚什么原因,后来卸载了pyinstaller,重新安装了一下问题就解决了,python解决“failed to execute pyi_rth_pkgres”问题在这里插入图片描述

注意事项:

  1. 程序窗口左上角的图标,直接用root.iconbitmap('i.ico'),打包后是没办法修改图标的,亲自测试比较好用的办法是 python tkinter把图标一起打包到exe中,先将图标变为bse64格式,变为一个.py文件,再通过import导入到程序中,这样打包好后才可以使得图标成功显示在程序窗口的左上角。

具体代码:

import base64
open_icon = open("i.ico","rb")  # i.ico为图标文件
b64str = base64.b64encode(open_icon.read())
open_icon.close()
write_data = "img = '{0}'".format(b64str)
f = open("icon.py","w+")  # 运行成功后会出现一个icon.py文件
f.write(write_data)
f.close()

然后在主程序中这样添加一下即可:

import base64
from icon import img
import os# 将import进来的icon.py里的数据转换成临时文件i.ico,作为图标
tmp = open('tmp.ico', 'wb+')
tmp.write(base64.b64decode(img))
tmp.close()
root.iconbitmap('tmp.ico')
os.remove('tmp.ico')root.mainloop()
  1. 尽量使用 from xx import xxx方式导入,这样打包后的exe程序的大小相比直接使用import xx 会小很多。我本来写了一个很小的程序,结果打包好后竟然达到了213M,后来精简导包方式,压缩到34M。

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

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

相关文章

chatgpt赋能python:Python如何进行P图——探索Python图像处理库的可能性

Python如何进行P图——探索Python图像处理库的可能性 介绍 随着数字化时代的到来,图像处理已不再是专业领域的专属,许多人也开始接触和学习图像处理。我们常见的图像处理软件有Photoshop和GIMP等,而在Python编程领域中,也有很多…

面向对象程序设计 C++总结笔记(1)

面向对象程序设计 学习方法 理解基本原理掌握程序设计方法加强动手实践 课程目标 理解面向对象程序设计的基本原理,掌握面向对象技术的基本概念和封装性、继承性和多态性,能够具有面向对象程序设计思想。掌握C语言面向对象的基本特性和C语言基础知识&…

深度学习实战5-卷积神经网络(CNN)中文OCR识别项目

文章目录 一、前期工作 导入库图片生成函数导入数据生成数据集函数 二、CNN模型建立 三、训练模型函数 四、训练模型与结果 五、验证 大家好,我是微学AI,今天给大家带来一个利用卷积神经网络(CNN)进行中文OCR识别,…

7个成功的DTC品牌出海营销策略,提高海外客户的忠诚度!

关键词:DTC品牌出海、DTC营销、客户忠诚度 近年来,普通消费者关心的事情发生了巨大变化。 60% 的消费者会特意从品牌而不是第三方零售商处购买。 从大型零售商处购买再成为主流。人们希望与他们关心并感到关心的品牌建立关系。他们希望支持独立企业并找到…

Cat.1热度居高不下,利尔达 NT26E系列模组带来更多新选择

2021年全球Cat.1处于爆发期,出货量达到1.2亿,仅在中国市场上,Cat.1出货量就达到了1.1亿。据近日市场研究公司Counterpoint最新的发布全球蜂窝物联网芯片跟踪报告,2021年第四季度,4G Cat.1出货量同比增长154%。今年的市…

Cat.1模组再添新选择,利尔达推出NT26U提供多元应用思路

Cat.1因模组成熟度高且可复用现有的LTE资源而广受欢迎,它不但成本低,还能在短时间内形成规模效应。随着2G/3G的加速退网,Cat.1作为中低速率应用场景中最适合保障通信能力的网络之一更是水涨船高。 基于展锐的Cat.1模组 作为LTE网络的“低配版…

短信接收流程

Android 短信接收流程 Android S 短信接收流程 Android 12 短信接收流程 指路 -> 短信发送流程 流程图

开题报告PPT怎么制作

毕业设计答辩的首要环节就是前期答辩,也叫作开题汇报答辩,主要内容是对后期设计制作的规划及时间安排,同时还有设计要达到什么目的效果,预测在制作工程中可能遇到的问题并且提出这些问题的解决方案,开题报告汇报时以PP…

springboot+微信小程序的点餐系统(开题报告+论文+答辩PPT+源码)

技术架构 SprongBootMysql微信小程序 简介 本点餐小程序是使用Java/JavaScript编程语言开发的,存储数据方面则用到了MySQL数据库。顾客可以使用小程序扫码功能扫描餐厅桌角的二维码就座,也可以点击排号等位由后台工作人员安排就座;通过首页…

毕业论文学术报告答辩开题报告PPT模板

模板介绍 毕业论文学术报告答辩开题报告PPT模板。一套论文答辩幻灯片模板,内含黑色,红色多种配色,风格设计,动态播放效果,精美实用。 希望下面这份精美的PPT模板能给你带来帮助,温馨提示:本资源使用PPT或…

python图片分享平台毕业设计开题报告

本文给出的python毕业设计开题报告,仅供参考!(具体模板和要求按照自己学校给的要求修改) 选题目的和意义 目的:本课题主要目标是设计并能够实现一个基于web网页的图片分享平台,整个网站项目使用了B/S架构…

高校通用论文开题报告PPT模板

模板介绍 高校通用论文开题报告PPT模板。一套开题报告幻灯片模板,内含青色,红色多种配色,风格设计,动态播放效果,精美实用。 希望下面这份精美的PPT模板能给你带来帮助,温馨提示:本资源使用PPT或PPTX等格…

计算机开题报告万能模板,计算机开题报告ppt模板

PPT内容 这是计算机开题报告ppt模板,包括了课题研究的意义和目的,论文提纲,研究的预期目标及主要特点及创新点,研究方法和途径等内容。 基于NS的无线网络的AODV路由协议仿真测试与性能分析 毕业论文开题报告 指导老师:…

chatglm+tesla m40低成本部署

chatglmtesla m40部署 tesla m40安装BIOS设置驱动下载并安装验证安装并切换WDDM模式 chatglm安装环境安装加载模型CUDA安装Torch安装源码修改 成功结果展示常见问题 本机配置 i5 13600k ,主板是微星760 bomer tesla m40安装 Tesla M40 24G实际上是计算卡,不是显卡&…

Win11 的这 19 个新功能,你都用上了吗?

Windows 11 是 Windows 的新版本,现在正在向受支持的 PC 推出多项新功能和改进。 Windows 11 于 10 月 5 日开始推出,微软也发布了 Windows 11 ISO 镜像。与之前的 Windows 10 更新不同,这个新的操作系统专注于面向消费者的功能和改进&#x…

使用WinINet和WinHTTP实现Http访问

Http访问有两种方式,GET和POST,就编程来说GET方式相对简单点,它不用向服务器提交数据,在这个例程中我使用POST方式,提交数据value1与value2,并从服务器得到他们的和(value1 value2)…

day02 创建第一个Windows窗口及Windows的消息处理

文章目录 第一个Windows窗口程序1. 入口函数2. 创建窗口类3. 注册窗口4. 创建窗口实例5. 处理消息事件6. 回调函数完整测试 Windows消息处理 第一个Windows窗口程序 1. 入口函数 Windows编程的入口函数: 建议直接F1查询官方文档,Ctrl CV int WINAPI W…

chatgpt赋能python:Python导入自己的文件:完全指南

Python导入自己的文件:完全指南 Python是一种高级编程语言,许多工程师在开发过程中使用它。当我们在编写Python应用程序时,可能需要将代码拆分为多个模块,以使其更易于维护和扩展。在这种情况下,我们需要导入自己的Py…

chatgpt赋能python:Python中的库导入方法详解

Python中的库导入方法详解 Python拥有丰富的库,这也是它广受欢迎的原因之一。而在使用Python编程时,如何正确地导入库是至关重要的。本文将介绍Python中常用的库导入方法,并帮助读者理解每种方法的优缺点。 直接导入库 最基本的导入库方法…

Postman下载安装教程

看到很多小伙伴在问 Postman 下载的相关问题,花时间整理了下,下面教新入门的小伙伴如何去下载 Postman。 开始前我们可以先了解下:Postman 简介 下载 第一步:进入 Postman 官网 首先,我们需要进入 Postman 的官网。…