【2024Python教程】Python文件打包成exe,如果有图片怎么打包?有手就会的超简单教程

news2024/10/6 12:33:40

目录

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 base64
 
 
def 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动态生成图片和音频

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

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

相关文章

瑞幸携陈建斌迎“白月光”回归,品牌联名为何屡试不爽?

要说品牌联名看谁家,那真不得不提瑞幸。一招“酱香拿铁”直接“热翻”各大平台,不少网友感慨“人生第一杯茅台,居然是瑞幸给的”。而上个月瑞幸又上了一波“大招”,携手“大胖橘”陈建斌老师回归初代产品“橘金气泡美式”&#xf…

一文读懂数据中台

前言:数据中台的目标是让数据持续用起来,通过数据中台提供的工具、方法和运行机制,把数据变为一种服务能力,让数据更方便地被业务所使用。下图所示为数据中台总体架构图,数据中台是在底层存储计算平台与上层的数据应用…

Qt——窗口

目录 概述 菜单栏 创建菜单栏 创建子菜单 添加分割线 添加图标 工具栏 创建工具栏 设置初始位置和停靠位置 设置浮动属性 设置移动属性 状态栏 创建状态栏 显示实时消息 添加控件 浮动窗口 创建浮动窗口 对话框 创建对话框 对话框的分类 Qt 内置对话框 …

基于.Net 框架实现WebSocket 简单通信——服务端

新建项目 创建一个.Net 框架的控制台程序。 添加包 项目 → 管理 NuGet 程序包打开包管理窗口,添加SuperWebSocket 程序包。 实现 项目 → 添加类打开添加新项窗口,添加一个C#类。 启动监听 WebSocketServer socket new WebSocketServer();Conso…

浅谈DALL-E2

目录 1.概述 2.诞生背景 3.作用 4.版本历史 5.模型和技术 6.应用场景 6.1.十个应用场景 6.2.游戏开发 7.接口 8.未来展望 9.总结 1.概述 DALL-E2 是由 OpenAI 开发的一个图像生成模型,可以根据文本描述生成高质量的图像。DALL-E2 是 DALL-E 的升级版&am…

【小白学Python】自定义图片的生成(一)

目录标题 安装Pillowdemo代码初次代码计划 个人需要,基于文字生成图片。 除了AI外,对于简单的图片,Python在这方面也非常擅长。 我算是一个Python小白,除了业余时尝试过Python基本语法的练习,从未真正使用过Python。…

电流的本质是什么

话说很久以前,科学发现纯靠人眼识别。有一天,泰勒斯(古希腊哲学家,被称为科学的祖师爷)一时手痒,拿着琥珀与皮毛摩擦。 结果他发现那种半透明的小石头,居然产生了吸引小物体的魔力。 面对这个现象,老泰开始…

CRM客户关系管理:全方位客户关系管理解决方案

CRM客户关系管理系统,基于Spring Cloud Alibaba、Spring Boot、MybatisPlus、Redis和VUE3 ElementUI微服务架构,提供全面的客户关系管理功能。系统智能化地管理客户信息、线索跟踪、商机开发、合同管理、回款计划等,助力企业提升客户满意度&a…

资产管理系统是什么?主要有哪些功能?

资产管理系统主要对企业的固定资产、流动资产、长期投资等进行综合管理,通过先进的条形码技术对资产实物从购置、领用、清理、盘点、借用归还、维修到报废进行全方位准确监管。 一、资产管理系统主要包括哪些功能? 1、资产管理 (1&#xf…

掌握Python的全方位教程,2024年最新版本,初学者必备指南

哈喽,大家好!热烈欢迎你迈出成为python开发者的第一步。我想这一定非常激动人心,对吧?无论你是刚刚开始学习编程,还是曾经用过其他语言有一定的编程经验,本书中课程将帮助你加速实现你学习python的目标。作…

vue30:组件通信

父子关系 1:父组件通过props将数据传递给子组件 2:子组件利用$emi通知父组件修改更新

CISP究竟适合谁?这四类人没跑了

在信息技术飞速发展的现在,网络安全已经成为了一个不可忽视的话题。 CISP,即注册信息安全专业人员,是网络安全领域内一项备受认可的专业认证。 但CISP究竟适合谁考呢?这不仅是一个技术问题,更是一个职业规划的问题。…

用友U8 许可更新

当登录U8客户端提示下面的界面时,需要联网更新许可 登录服务器,打开Win下面的许可管理 导入许可——在线同步许可 更新完成即可

重温react-01

创建react项目 // 第一步 npm install create-react-app -g // 第二步 create-react-app my-app目录介绍 my-app/README.md# 项目第三方依赖包node_modules/package.json# 一般用来存放静态依赖public/index.htmlfavicon.ico# 存放项目源代码,注意只有放在scr目录…

java:使用JSqlParser给sql语句增加tenant_id和deleted条件

# 示例代码 【pom.xml】 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-core</artifactId><version>3.4.3.1</version> </dependency>【MyJSqlParserTest.java】 package com.chz.myJSqlParser;pu…

短视频矩阵源码---矩阵托管1000个账号如何正规开发规则实现

一、短视频矩阵源码开发实现规则&#xff1a; 1.首先是确保各个官方平台api接口的稳定性&#xff0c;一定要是各个平台正规的api 2.其次是保证服务器运行&#xff0c;带宽保证能够并行&#xff0c;目前我们这边用的是源码所需服务器配置&#xff1a;规格:最低8核16G2、硬盘:系…

基于Sentry+OpenTelemetry实现微服务前后端全链路监控

文章目录 前⾔背景技术⽅案Sentry私有化部署部署环境准备 项目集成前端后端agent探针集成sentry sdk集成增强探针为⽇志注⼊TraceID异常处理SDK⾃定义开发sentry sdk⾃定义开发⾃定义SentryEvent注⼊otel追踪信息⾃定义全局异常上报issue事件新增动态过滤功能 Java Agent Exten…

【重拾数学知识】导数、极值和最值

前言 在深度学习中&#xff0c;梯度下降法是一种常用的优化算法&#xff0c;用于更新模型参数以最小化损失函数。这梯度下降法中涉及到数学中的导数、极值等相关知识&#xff0c;因此我们重新回顾相关内容&#xff0c;以便加深理解。 相关概念 导数 一个问题 如何求得一个…

Project 项目管理软件真的好用吗?

作为一个普通的职场人&#xff0c;或许只要掌握office全家桶&#xff0c;即可应对大部分工作。 但对项目经理来说&#xff0c;这是远远不够的。项目经理需要实时掌握项目进度、把关项目质量、应对项目风险、实时分析项目数据&#xff0c;做出正确的决策等等… 而拥有一款高效…

开发自动发消息插件需要用到的源代码!

在现今的数字化时代&#xff0c;自动发消息插件成为了许多应用程序中不可或缺的一部分&#xff0c;这些插件能够帮助我们自动化地完成消息发送任务&#xff0c;提高工作效率&#xff0c;节省时间成本。 那么&#xff0c;开发一个自动发消息插件究竟需要用到哪些关键的源代码呢…