【2024Python教程】Python文件打包成exe,如果有图片怎么打包?有手就会的超简单教程
目录
pyinstaller模块打包exe(无图片或其他文件打包版)
第一步 安装pyinstaller模块:
第二步 找到需要打包的主程序文件夹
第三步 打包exe文件
第四步 确认exe文件是否可以打开
pyinstaller模块打包exe(有图片打包版--方法一)
第一步 安装pyinstaller模块:
第二步 找到需要打包的主程序文件夹
第三步 打包exe文件
第四步 确认exe文件是否可以打开
pyinstaller模块打包exe(无图片或其他文件打包版)
第一步 安装pyinstaller模块:
在VScode中安装模块:pip install pyinstaller(可以用这个,也可以用下面这个)
pip install -U pyinstaller
安装成功后,长这样:
第二步 找到需要打包的主程序文件夹
命令行cd到Python主程序文件所在的目录
cd 你的绝对文件路径
第三步 打包exe文件
直接进入cmd行,输入以下 命令!!
注意:这里已经进到了主文件夹,所以不是路径了,是你的文件名就行)
pyinstaller -F -w 你的文件名.py
安装成功后长这样:
第四步 确认exe文件是否可以打开
然后就可以去dist文件夹打开你的exe了!!!
打开后长这样
pyinstaller模块打包exe(有图片打包版--方法一)
第一步 安装pyinstaller模块:
在VScode中安装模块:pip install pyinstaller(可以用这个,也可以用下面这个)
pip install -U pyinstaller
安装成功后,长这样:
第二步 找到需要打包的主程序文件夹
命令行cd到Python主程序文件所在的目录
cd 你的绝对文件路径
第三步 打包exe文件
- 第一种方法:写个base64的程序,把图片转成.py文件用于引用()
使用base64编码方式对程序中所使用的图片进行编码操作
import base64def pic2py(picture_names: list, py_name):write_data = []for picture_name in picture_names:filename = picture_name.replace('.', '_')with open("%s" % picture_name, 'rb') as r:b64str = base64.b64encode(r.read())# 注意这边 b64str 一定要加上.decode()write_data.append('%s = "%s"\n' % (filename, b64str.decode()))with open(f'{py_name}.py', 'w+') as w:for data in write_data:w.write(data)# 需要转码的图片:pics = ["./pic.png"]# 将pics里面的图片写到 image.py 中pic2py(pics, 'image')
程序会生成一个image.py的python脚本,里面包含了图片。
然后,在主程序中导入image.py脚本引用,将图片编码在转成图片即可,引用方式如下:
from image import *# 引用示例,pic.png,注意 转码后名字是pic_png
self.root.iconbitmap(image.pic_png)
第二种方法:找个图片转base64的网站,把图片一张一张扔进去https://base64.guru/converter/encode/image 转成base64的码,直接赋值或者复制粘贴到源代码
在源代码中写入image的Base64码即可:
image_data = {"xx.png": "Base64码"
}original_image_upload = tk.PhotoImage(data=image_data["xx.png"])
到此,知道了图片的引用方式,打包py文件就简单了,
直接进入cmd行,输入以下 命令!!
注意:这里已经进到了主文件夹,所以不是路径了,是你的文件名就行)
pyinstaller -F -w 你的文件名.py
安装成功后长这样:
第四步 确认exe文件是否可以打开
然后就可以去dist文件夹打开你的exe了!!!
打开后长这样
pyinstaller模块打包exe(有图片打包版--方法二)
第一步 安装pyinstaller模块:
在VScode中安装模块:pip install pyinstaller(可以用这个,也可以用下面这个)
pip install -U pyinstaller
安装成功后,长这样:
第二步 找到需要打包的主程序文件夹
命令行cd到Python主程序文件所在的目录
cd 你的绝对文件路径
第三步 打包exe文件
使用
pyi-makespec
optionsname.py 创建新的python文件
pyi-makespec options 你的文件.py
具体可以参考这篇文章:python - Pyinstaller and --onefile: How to include an image in the exe file - Stack Overflow
根据文档的描述,有两个不同的命令可以创建规范文件(spec file):
pyinstaller options 你的名字.py
这个命令会自动创建一个规范文件,文件名通常是
myscript.spec
。PyInstaller在打包应用程序时会使用这个自动生成的规范文件。
pyi-makespec options name.py [other scripts ...]
这个命令是专门用于创建规范文件的,不会直接打包应用程序。通过这个命令,可以显式地创建并查看规范文件的内容。
总的来说:
如果只想简单地将Python脚本打包为可执行文件,使用
pyinstaller options.. myscript.py
这个命令就可以了,它会自动处理规范文件。如果需要自定义规范文件,比如添加数据文件、运行时库等,那么可以先使用
pyi-makespec
命令创建规范文件,修改后再执行pyinstaller进行打包。
在options.spec文件里创建以下内容:
# -*- mode: python ; coding: utf-8 -*-a = Analysis(['options', '你的文件.py'],pathex=[],binaries=[],datas=[('你的数据路径', '数据名称')],hiddenimports=[],hookspath=[],hooksconfig={},runtime_hooks=[],excludes=[],noarchive=False,optimize=0,
)
pyz = PYZ(a.pure)exe = EXE(pyz,a.scripts,[],exclude_binaries=True,name='options',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,console=True,disable_windowed_traceback=False,argv_emulation=False,target_arch=None,codesign_identity=None,entitlements_file=None,
)
coll = COLLECT(exe,a.binaries,a.datas,strip=False,upx=True,upx_exclude=[],name='options',
)
在python源文件里加入:
最后直接进入cmd行,输入以下 命令!!
pyinstaller --onefile --windowed --add-data "picture1.jpeg:." --add-data "picture2.png:." your_file.py
注意:这里已经进到了主文件夹,所以不是路径了,是你的文件名就行)
安装成功后长这样:
第四步 确认exe文件是否可以打开
然后就可以去dist文件夹打开你的exe了!!!
打开后长这样
Pyinstaller的打包可选参数说明:
使用格式:pyinstaller -F -w -i x.ico xxx.py
pyinstaller的参数讲解:
第一个参数(必选):
-F:生成单个可执行文件
-D:生成多个可执行文件
第二个参数:
-c:文件执行时携带cmd黑窗口(默认)
-w:文件执行时不启用cmd黑窗口
第三个参数:
-p:自定义需要加载的类路径(基本不用)
第四个参数:
-i x.ico:为可执行文件添加图片,此处x用绝对路径
第五个参数(必选):
xxx.py:需要打包的py文件,xxx为主程序文件名
运行后会生成:
build:内含生成的项目文件
dist:内含生成的exe可执行文件
xxx.spec:打包过程日志
打包图片和音频的方法:
因使用pyinstaller打包exe时,不能打包图片和音频,解决方法:
采用base64动态生成图片和音频
相关文章:

【2024Python教程】Python文件打包成exe,如果有图片怎么打包?有手就会的超简单教程
目录 pyinstaller模块打包exe(无图片或其他文件打包版) 第一步 安装pyinstaller模块: 第二步 找到需要打包的主程序文件夹 第三步 打包exe文件 第四步 确认exe文件是否可以打开 pyinstaller模块打包exe(有图片打包版--方法一…...

mac环境基于llama3和metaGPT自动开发2048游戏
1.准备虚拟环境 conda create -n metagpt python3.9 && conda activate metagpt 2.安装metagpt pip install --upgrade metagpt 3.初始化配置文件 metagpt --init-config 4. 安装llama3 5. 修改配置文件 6.让metegpt自动开发2048游戏 7.经过多轮迭代,最终…...
这些Linux知识可不是靠背就会的!
在信息技术日新月异的今天,Linux以其开源、稳定、高效的特性,逐渐成为了众多专业人士的首选操作系统。然而,关于Linux知识的学习,却常常陷入一个误区——许多人认为,掌握Linux就是死记硬背各种命令和参数。这种观念&am…...

openlayers 绘图功能,绘制多边形,draw组件的使用,一个简单的需求引发的思考(一)
1 需求 使用openlayers绘图功能绘制多边形 2 分析 主要是openlayers中draw功能的使用,感觉比较简单,祖传CV大法搞起来 3 实现 为了方便,就不加载底图了,直接使用绘制功能 2.1 简单实现 <template><div id"ma…...

【Flutter】 TextField限制长度时, 第三方手写输入法、ios原始拼音输入法输入被吞问题
问题描述 TextField限制长度时, 当你的输入字符长度已经到了最大值-1时,使用第三方手写输入法或者ios原生拼音输入法输入liang(什么拼音都行,这里只是举例),输到i那么li都会消失。 原因分析 这是因为第三…...

快递一键查询,只需快递单号,轻松掌握全程物流信息,让您的包裹追踪无忧!
在快节奏的现代生活中,快递已经成为我们生活中不可或缺的一部分。无论是网购的宝贝、亲朋好友寄来的礼物,还是工作中的紧急文件,快递都承载着我们的期待和需要。然而,面对众多的快递公司和复杂的查询流程,如何快速、准…...

【Java探索之旅】继承结构 继承和组合 protected final
文章目录 📑前言一、继承1.1 继承关系的代码块1.2 protected关键字1.3 继承方式1.4 final关键字1.5 继承与组合 🌤️全篇总结 📑前言 在面向对象编程中,继承是一种重要的概念,它允许我们创建一个新类,从现有…...
Ubuntu20.04-SLAM软件安装
目录 安装环境安装问题1.Ubuntu20.04在T440p上的安装问题1.1 安装后提示"x86/cpu:VMX(outside TXT) disabled by BIOS"1.2 ACPI Error:Needed type[Reference],found [Integer] 等错误1.3 ima: Error Communicating to TPM chip1.4 locate命令的安装 2.中文输入法-go…...

OSI七层网络参考模型
一、物理层 我们要发送出去的数据在计算机里只不过是无数的0和1,0或1就叫做比特,物理层就是把这些比特用不同的媒介传输出去,可以用电、光或者其他形式的电磁波来表示和传输信号,数据从网络接口出去以后,会经过不同的网…...

RAG与知识库搭建
Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务,并且需要GPU资源,可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时&…...

MySQL提权之UDF提权
1、前言 最近遇到udf提权,几经周折终于搞懂了。感觉挺有意思的,渗透思路一下子就被打开了。 2、什么是udf提权 udf 全称为user defined function,意思是用户自定义函数。用户可以对数据库所使用的函数进行一个扩展(windows利用…...
【设计模式】结构型设计模式之 组合模式
介绍 这里的组合模式,与之前的设计模式中的"组合关系"完全是两码事,这里的组合模式主要用来处理结构为树形的数据。 组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树状结构来表示…...

我给KTV服务生讲解防抖,他竟然听懂了
端午节三天假期,的最后一天,我和朋友闲来无事,想着去唱会儿歌吧,好久不唱了,于是吃了午饭,石景山就近找了一家KTV,我们团好了卷就过去了。 装修还算不错,很快找到服务生,…...
抽象java入门1.3.1
前言: 本期内容是为了更好补充关于方法(函数)的定义 开始: 函数(function)表示每个输入值对应唯一输出值的一种对应关系。 核心在于:输入值和输出值这两个元素 真的吗? 错&…...

使用Rufus工具制作Ubuntu To Go——很详细
一、准备工作 准备工具: 1、下载Rufus(主角)软件 2、准备一个U盘(制作启动盘,32G足够) 3、准备一个U盘或硬盘(小白128G足够,装Ubuntu系统) 4、下载Ubuntu系统镜像文件 1、下载软件Rufus 先来看…...

Android Jetpack Compose 实现一个电视剧选集界面
文章目录 需求概述效果展示实现思路代码实现总结 需求概述 我们经常能看到爱奇艺或者腾讯视频这类的视频APP在看电视剧的时候都会有一个选集的功能。如下图所示 这个功能其实很简单,就是绘制一些方块,在上面绘制上数字,还有标签啥的。当用户…...
C++多线程并发
文章目录 C多线程并发std::chronoC中的多线程:std::thread主线程等待子线程结束:join主线程分离子线程:detach异步:std::async异步的另一种用法:std::launch::deferredstd::async的底层实现:std::promisest…...

新火种AI|摊上事儿了!13名OpenAI与谷歌员工联合发声:AI失控可能导致人类灭绝...
作者:小岩 编辑:彩云 2024年,OpenAI的CEO Sam Altman就没有清闲过,他似乎一直走在解决麻烦的路上。最近,他的麻烦又来了。 当地时间6月4日,13位来自OpenAI和Google Deep Mind的现任及前任员工联合发布了…...
Web前端后端精通:深度解析与技能进阶
Web前端后端精通:深度解析与技能进阶 在数字时代的浪潮中,Web前端后端技术的精通成为了信息科技领域的核心竞争力。本文将从四个方面、五个方面、六个方面和七个方面深入探讨Web前端后端技术的精髓,带领读者领略这一领域的魅力与挑战。 一、…...

【C语言】09.函数递归
递归其实是⼀种解决问题的方法,在C语言中,递归就是函数自己调用自己。 一、递归的介绍 1.1递归的思想 把⼀个大型复杂问题层层转化为⼀个与原问题相似,但规模较小的子问题来求解;直到子问题不能再被拆分,递归就结束…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...