当前位置: 首页 > news >正文

【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 options name.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功能的使用&#xff0c;感觉比较简单&#xff0c;祖传CV大法搞起来 3 实现 为了方便&#xff0c;就不加载底图了&#xff0c;直接使用绘制功能 2.1 简单实现 <template><div id"ma…...

【Flutter】 TextField限制长度时, 第三方手写输入法、ios原始拼音输入法输入被吞问题

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

快递一键查询,只需快递单号,轻松掌握全程物流信息,让您的包裹追踪无忧!

在快节奏的现代生活中&#xff0c;快递已经成为我们生活中不可或缺的一部分。无论是网购的宝贝、亲朋好友寄来的礼物&#xff0c;还是工作中的紧急文件&#xff0c;快递都承载着我们的期待和需要。然而&#xff0c;面对众多的快递公司和复杂的查询流程&#xff0c;如何快速、准…...

【Java探索之旅】继承结构 继承和组合 protected final

文章目录 &#x1f4d1;前言一、继承1.1 继承关系的代码块1.2 protected关键字1.3 继承方式1.4 final关键字1.5 继承与组合 &#x1f324;️全篇总结 &#x1f4d1;前言 在面向对象编程中&#xff0c;继承是一种重要的概念&#xff0c;它允许我们创建一个新类&#xff0c;从现有…...

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&#xff0c;0或1就叫做比特&#xff0c;物理层就是把这些比特用不同的媒介传输出去&#xff0c;可以用电、光或者其他形式的电磁波来表示和传输信号&#xff0c;数据从网络接口出去以后&#xff0c;会经过不同的网…...

RAG与知识库搭建

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

MySQL提权之UDF提权

1、前言 最近遇到udf提权&#xff0c;几经周折终于搞懂了。感觉挺有意思的&#xff0c;渗透思路一下子就被打开了。 2、什么是udf提权 udf 全称为user defined function&#xff0c;意思是用户自定义函数。用户可以对数据库所使用的函数进行一个扩展&#xff08;windows利用…...

【设计模式】结构型设计模式之 组合模式

介绍 这里的组合模式&#xff0c;与之前的设计模式中的"组合关系"完全是两码事&#xff0c;这里的组合模式主要用来处理结构为树形的数据。 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你将对象组合成树状结构来表示…...

我给KTV服务生讲解防抖,他竟然听懂了

端午节三天假期&#xff0c;的最后一天&#xff0c;我和朋友闲来无事&#xff0c;想着去唱会儿歌吧&#xff0c;好久不唱了&#xff0c;于是吃了午饭&#xff0c;石景山就近找了一家KTV&#xff0c;我们团好了卷就过去了。 装修还算不错&#xff0c;很快找到服务生&#xff0c…...

抽象java入门1.3.1

前言&#xff1a; 本期内容是为了更好补充关于方法&#xff08;函数&#xff09;的定义 开始&#xff1a; 函数&#xff08;function&#xff09;表示每个输入值对应唯一输出值的一种对应关系。 核心在于&#xff1a;输入值和输出值这两个元素 真的吗&#xff1f; 错&…...

使用Rufus工具制作Ubuntu To Go——很详细

一、准备工作 准备工具&#xff1a; 1、下载Rufus(主角)软件 2、准备一个U盘&#xff08;制作启动盘&#xff0c;32G足够&#xff09; 3、准备一个U盘或硬盘&#xff08;小白128G足够&#xff0c;装Ubuntu系统&#xff09; 4、下载Ubuntu系统镜像文件 1、下载软件Rufus 先来看…...

Android Jetpack Compose 实现一个电视剧选集界面

文章目录 需求概述效果展示实现思路代码实现总结 需求概述 我们经常能看到爱奇艺或者腾讯视频这类的视频APP在看电视剧的时候都会有一个选集的功能。如下图所示 这个功能其实很简单&#xff0c;就是绘制一些方块&#xff0c;在上面绘制上数字&#xff0c;还有标签啥的。当用户…...

C++多线程并发

文章目录 C多线程并发std::chronoC中的多线程&#xff1a;std::thread主线程等待子线程结束&#xff1a;join主线程分离子线程&#xff1a;detach异步&#xff1a;std::async异步的另一种用法&#xff1a;std::launch::deferredstd::async的底层实现&#xff1a;std::promisest…...

新火种AI|摊上事儿了!13名OpenAI与谷歌员工联合发声:AI失控可能导致人类灭绝...

作者&#xff1a;小岩 编辑&#xff1a;彩云 2024年&#xff0c;OpenAI的CEO Sam Altman就没有清闲过&#xff0c;他似乎一直走在解决麻烦的路上。最近&#xff0c;他的麻烦又来了。 当地时间6月4日&#xff0c;13位来自OpenAI和Google Deep Mind的现任及前任员工联合发布了…...

Web前端后端精通:深度解析与技能进阶

Web前端后端精通&#xff1a;深度解析与技能进阶 在数字时代的浪潮中&#xff0c;Web前端后端技术的精通成为了信息科技领域的核心竞争力。本文将从四个方面、五个方面、六个方面和七个方面深入探讨Web前端后端技术的精髓&#xff0c;带领读者领略这一领域的魅力与挑战。 一、…...

【C语言】09.函数递归

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

php高级之框架源码、宏扩展原理与开发

在使用框架的时候我们经常会看到如下代码 类的方法不会显示地声明在代码里面&#xff0c;而是通过扩展的形式后续加进去&#xff0c;这么做的好处是可以降低代码的耦合度、保证源码的完整性、团队开发的时候可以分别写自己的服务去扩展类&#xff0c;减少代码冲突等等。我自己…...

(2024,示例记忆,模型记忆,遗忘,差分评估,概率评估)深度学习中的记忆:综述

Memorization in deep learning: A survey 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0 摘要 1 引言 0 摘要 深度神经网络&#xff08;DNNs&#xff09;驱动的深度学习&#xff…...

硬件产品经理

边端协调管理平台 主页一&#xff1a;模型管理1.1 边侧模型管理 二&#xff1a;配置管理2.1 终端软件配置管理 三&#xff1a;设备管理3.1 区域位置管理3.2 工控机管理&#xff08;其实就是围绕授权&#xff09;3.3 生产设备管理3.4 设备运行管理 四&#xff1a;数据服务4.1 实…...

AES加密、解密工具类

1、AES加密、解密工具类 这篇文章,主要记录一下AES加密、解密的工具类代码,在需要使用的时候,直接复制黏贴即可。 package com.gitcode.pms.common.util;import org.slf4j.Logger; import org.slf4j.LoggerFactory;import javax.crypto.Cipher; import javax.crypto.spec.…...

普通人想要自学ai,该如何入手,看完这篇你就懂了,零基础教程!

学会了AIGC之后&#xff0c;我只想说&#xff1a;无敌是多么寂寞&#xff1f; 之前我整理一篇会议记录起码要2小时。现在交给AI &#xff0c;5分钟搞定&#xff1b; 之前整理账目总是出错&#xff0c;现在利用AI财务整合器&#xff0c;轻松解决统计难题&#xff1b; 之前写个…...

Less的简单总结

Less 是一个开源的 CSS 预处理器&#xff0c;它扩展了 CSS 语言&#xff0c;增加了变量、嵌套规则、运算符、函数等特性&#xff0c;使编写 CSS 更加高效、灵活且易于维护。下面是对 "Less" 的一个总结文档&#xff1a; 简介 名称&#xff1a;Less&#xff08;通常表…...

Android:UI:Drawable:View/ImageView与Drawable

文章目录 在View/ImageVIew中显示DrawableDrawable对View的更新操作在View/ImageVIew中显示Drawable API View.setBackground(Drawable) ImageView.setImagDrawable(Drawable) 源码分析 View.mBackground在View.draw(Canvas)中绘制,调用Drawable.draw(Canvas) ImageView.m…...

网络安全实验BUAA-全套实验报告打包

下面是部分BUAA网络安全实验✅的实验内容 &#xff1a; 认识路由器、交换机。掌握路由器配置的基本指令。掌握正确配置路由器的方法&#xff0c;使网络正常工作。 本博客包括网络安全课程所有的实验报告&#xff1a;内容详细&#xff0c;一次下载打包 实验1-路由器配置实验2-AP…...

监控易监测对象及指标之:全面监控SQL Server 2008

随着企业信息化建设的不断深入&#xff0c;数据库作为存储和管理关键业务数据的核心&#xff0c;其稳定性和性能至关重要。SQL Server 2008作为一款广泛使用的关系型数据库管理系统&#xff0c;承载着众多企业的核心业务数据。 为了确保SQL Server 2008数据库的稳定运行和高效性…...

【学习记录】6.11 阅读记录

SpringBoot多环境配置详解(application-dev.yml、application-test.yml、application-prod.yml) springboot集成mybatis【使用generatorConfig.xml配置自动生成代码】 怎么快速查看自己mysql的安装位置 解决 http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd 报错...

专门做化妆品的网站/优化工作流程

2.1 问题 如图配置IPv6地址和OSPFv3区域 查看OSPFv3邻居和数据库LSA 确保 R1 和 R3 可以互相访问2.2 方案 搭建实验环境&#xff0c;如图-2所示。 图-2 2.3 步骤 实现此案例需要按照如下步骤进行。 1&#xff09;配置R1 地址&#xff0c;并启用 OSPFv3 <Huawei>und…...

溧阳做网站/网络营销公司招聘

Entity Framework是C#开发中最常见的ORM工具。默认Entity Framework只提供支持MSSQL的provider factory。但是开发者开源贡献了对SQLite、MySql以及Access等的支持。Entity Framework将概念模型中定义的实体和关系映射到数据源&#xff0c;利用实体框架可以将数据源返回的数据具…...

wordpress社区型主题/长沙疫情最新消息今天封城了

tempfile 模块专门用于创建临时文件和临时目录&#xff0c;它既可以在 UNIX 平台上运行良好&#xff0c;也可以在 Windows 平台上运行良好。 tempfile 模块下提供了很多常用的函数&#xff0c;下面给大家具体介绍一下这些函数。tempfile.TemporaryFile(modewb, bufferingNone, …...

六安马启兵胡冰倩婚礼/推广优化方案

文章目录前言一、List二、基本特性三、常用方法四、案例代码五、浅拷贝 & 深拷贝1.浅拷贝2.深拷贝前言 本文主要对于Java中List的一些常用方法&#xff0c;以及开发过程中的一些小技巧的整理记录。 一、List 扩展Collection接口的接口&#xff0c;是一个有序的集合。 二…...

做58推广网站找哪家好/独立网站

原标题&#xff1a;全市第一&#xff01;镇江新区新建成6家省级研发机构为进一步促进新区产业发展&#xff0c;推动区内研发机构提档升级&#xff0c;提升企业自主创新能力&#xff0c;新区科信局持续推动省级企业工程技术研究中心培育申报工作。2020年全区共申报省级企业工程技…...

企业网站怎么搭建/logo设计

我接触Linux已经挺久了&#xff0c;十分喜爱Linux命令行的操作模式&#xff0c;无需鼠标就能够实现众多工作&#xff0c;然而现在的众多工作还是离不开桌面环境&#xff0c;固然众多Linux发行版都已经给Linux预备好了桌面环境&#xff0c;大部分常用的软件也已经有了Linux版本&…...