Python之PyInstaller打包EXE程序(带音乐加图片等资源)

news2025/4/7 7:35:25

Python之PyInstaller打包EXE程序(带音乐加图片等资源)

要将你的 Python 程序打包成一个可执行文件(.exe),并确保图片和音乐文件包含在其中,你可以使用 PyInstaller 工具。下面是一个简单的步骤来打包你的程序:

在这里插入图片描述

以我的文件夹中要打包程序为例

  • favicon.ico 程序图标
  • giphy1.gif 背景图片
  • Ryan Gosling,Emma Stone - City Of Stars.flac 背景音乐文件
  • 小程序.py 程序源码

1. 安装 PyInstaller

首先,你需要确保安装了 PyInstaller。你可以通过以下命令来安装:

pip install pyinstaller

2. 确保文件路径正确

首先确保首先,请确保你的资源文件 giphy1.gif 和音频文件都在与你的脚本文件 (.py) 同一个目录下。如果不是,请将它们移动到同一个目录。其次保证py代码中图片和音乐加载调用使用的绝对路径。

如果不是,可以使用以下代码修改来修改调用

import os
import sys

def resource_path(relative_path):
    """获取资源文件的绝对路径"""
    try:
        # PyInstaller 创建了一个临时文件夹,存放已打包的文件
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")

    return os.path.join(base_path, relative_path)

# 然后在加载资源时使用这个函数:
image_path = resource_path("giphy1.gif")
audio_path = resource_path("Ryan Gosling,Emma Stone - City Of Stars.flac")

# 更新你的代码以使用这些路径:
image = Image.open(image_path)
pygame.mixer.music.load(audio_path)

3. 打包程序

打包时的注意事项:在运行 PyInstaller 命令前,确保你的代码已经使用了 resource_path 函数来加载资源文件。这样,在打包为 .exe 时,资源文件路径会被正确解析,确保程序在运行时能够找到这些资源。

否则可能会打包后会出现FileNotFoundError: [Errno 2] No such file or directory: 'giphy1.gif'相关文件不存在报错,说明路径解析不正确。

打包程序命令如下:

pyinstaller -F --noconsole -i favicon.ico your_script.py --add-data="giphy1.gif;." --add-data="Ryan Gosling,Emma Stone - City Of Stars.flac;."
  • --onefile:命令等效于-F,将所有文件打包成一个单独的可执行文件。
  • --noconsole: 命令等效于-w,用于GUI应用程序,不显示控制台窗口。
  • -i: 为生成的exe文件添加一个图标。
  • --add-data "giphy1.gif;.":添加 giphy1.gif 文件到打包的可执行文件中。.;. 表示将文件添加到可执行文件的根目录中。
  • --add-data "Ryan Gosling,Emma Stone - City Of Stars.flac;.":添加音频文件到打包的可执行文件中。
  • your_script.py:替换为你 Python 脚本的名称。

打包程序命令在pycharm代码文件终端下执行

在这里插入图片描述

或者通过在代码文件夹目录下输入cmd后,窗口输入打包命令代码

在这里插入图片描述

运行结果如下

在这里插入图片描述

注意:上述截图和代码在windows环境运行并打包,如果是在Linux系统或者macOS系统执行python打包命令,需要使用 : 分隔路径:

以上述代码为例,应修改为

pyinstaller -F --noconsole -i favicon.ico your_script.py --add-data="giphy1.gif:." --add-data="Ryan Gosling,Emma Stone - City Of Stars.flac:."

希望对大家有所帮助,如有遇到相关问题,欢迎大家在评论区留言。

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

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

相关文章

Python实现水果忍者(开源)

一、整体介绍: 1.1 前言: 游戏代码基于Python制作经典游戏案例-水果忍者做出一些改动,优化并增加了一些功能。作为自己Python阶段学习的结束作品,文章最后有源码链接。 1.2 Python主要知识: (1&#xf…

FPGA开发——UART回环实现之发送模块的设计和数据回环整体实现

一、简介 在上一篇文章当中我们实现了UART接收模块的相关设计和功能实现,在今天的文章中我们继续实现剩下的发送模块的相关设计和完成完整的串口数据回环的实验。 在文章的最后我会给出完整的工程,给小伙伴们参考。 二、接收模块的基本设计 在接收模块…

如何下载老版本 的mysql

方案1:打开地址,即可 MySQL :: Download MySQL Community Server (Archived Versions) 输入地址 https://downloads.mysql.com/archives/community/ 方案2: MySQL :: Download MySQL Installer https://dev.mysql.com/downloads/windows…

推荐使用阿贝云免费云服务器、免费虚拟主机

官网地址:https://www.abeiyun.com 阿贝云免费云服务器,性价比之选! 不得不说,阿贝云的免费云服务器真的太棒了!不仅免费,还能提供如此优质的服务。服务器的配置虽然不算高端,但对于一般的应用…

【MySQL】数据库约束

系列文章目录 第一章 数据库基础 第二章 数据库基本操作 文章目录 系列文章目录前言约束关键字一览NOT NULLUNIQUEDEFAULTPRIMARY KEY自增主键 FOREIGN KEY总结 前言 在学习了数据库的增删改查操作之后,接下来就需要进阶的学习关键字来完善SQL语句的条件。学习数据…

宝塔部署Django项目(华为云)

1、登录华为云: 2、点击远程登录: 3、打开宝塔网址(华为云选的是centos) 4、在华为终端复制指令点击运行: 会显示安装完成,出现一个页面记录一下,方便以后登录: 5、复制外网面板地址到浏览器地址栏,输入账号,密码登录,在这里进行配置: 一、Django项目的设置以及压…

Gafgyt僵尸网络针对云原生环境,SSH弱密码成GPU挖矿新目标

近日,网络安全研究人员发现了 Gafgyt 僵尸网络的一个新变种,它以 SSH 密码较弱的机器为目标,最终利用其 GPU 计算能力在被攻击的实例上挖掘加密货币。 Aqua Security 研究员 Assaf Morag 在周三的一份分析报告中说:"这表明&…

虎牙的商业化畅想

2024年8月13日,虎牙公司公布了2024年第二季度财报。财报显示,2024年第二季度,虎牙公司总收入达15.4亿元。其中,来自游戏相关服务、广告和其他业务的收入同比增长152.7%至3.1亿元。在非美国通用会计准则下,该季度归属于…

KDP数据平台:以实战案例验证技术领先力

本文由智领云 LeetTools 工具自动生成 申请试用: https://www.leettools.com/feedback/ 在当今快速发展的技术环境中,数据平台的选择对企业的数字化转型和业务发展至关重要。智领云开源KDP(Kubernetes Data Platform)在数据处理和…

状态dp或滑动窗口

前言&#xff1a;这个题目可以用状态dp来做&#xff0c;其实还有一个思路&#xff0c;类似滑动窗口&#xff0c;如果有遇到第二个0&#xff0c;左指针加一 class Solution { public:int longestSubarray(vector<int>& nums) {int n nums.size();vector<vector<…

Mac 自定义键盘快捷键打开系统应用

在 macOS 中&#xff0c;可以通过自定义键盘快捷键来打开系统应用程序。这可以更快捷地访问常用的应用程序&#xff0c;提高工作效率。下面以创建活动监视器快捷键为例介绍“Mac 自定义键盘快捷键打开系统应用”的一般步骤&#xff1a; 创建活动监视器快捷键 键入command空格打…

DVWA | Brute Force通关指南

目录 Low Medium High Impossible Brute force主要是通过爆破达到渗透目的&#xff1a; Low 查看源代码&#xff1a; <?phpif( isset( $_GET[ Login ] ) ) {// Get username$user $_GET[ username ];// Get password$pass $_GET[ password ];$pass md5( $pass );//…

软件工程概述(上)

1、软件的概念、特点和分类 要了解软件工程&#xff0c;首先让我们重新认识一下软件。如今可以说是一个软件定义一切的时代&#xff0c;虽然人工智能发展的如火如荼&#xff0c;但究其本质&#xff0c;核心还是软件。那么&#xff0c;如何给软件下一个定义呢&#xff1f;软件又…

再造行业旗舰爆款,书客L2 Pro重塑医护级”护眼更养眼”,被誉为最强旗舰级标杆!

近日&#xff0c;作为照明领域黑马的SUKER书客正式发布护眼台灯L2 Pro&#xff0c;在各项标准都远超国AA的基础上&#xff0c;推出了RRT2.0红光养眼技术、第三代SDIT自适应调光技术以及全新一代紫光激发全光谱技术等一系列首创护眼黑科技&#xff0c;从强悍的护眼效果到惊艳的光…

《python语言程序设计》2018版第7章第04题Fan类,设计一个名为Fan的类表示一个风扇

8点下课到家也9点多。眼睛抬不起来 明天到周二要为好几十个兄弟姐妹们&#xff0c;完成日志和反馈表&#xff0c;还要保证低错误。明天还要完成单位的一些工作。 哦对了&#xff0c;还有这些兄弟姐妹们的视频。 好先看一下Fan类的代码&#xff0c;它继续存在exCode07 class Fa…

【uni-app】使用天气API做一个天气APP(全过程)- 实况、逐小时、40日

头一次使用uni-app写代码, 现学现卖, 写的不好的地方见谅, 申请个appid就可以运行 切换城市界面比较简单, 城市名称需要符合天气api参数规则, 录入的城市不要带市区县; 格式如: 青岛、铁西、海淀、沛县 APP效果 功能说明 实况天气逐小时预报未来7日天气未来40日天气空气质量详…

【Qt】QWidget的toolTip属性

QWidget的toolTip属性 如果一个GUI程序&#xff0c;界面比较复杂&#xff0c;按钮比较多&#xff0c;使用toolTip可以设置当鼠标悬停在控件上的时候&#xff0c;可以弹出一个提示。 API说明 setToolTip 设置 toolTip. ⿏标悬停在该 widget 上时会有提⽰说明. setToolTipDur…

10 ARM 体系

10 ARM 体系 ARM体系1、基本概念1.1 常见的处理器1.2 ARM7三级指令流水线1.3 初识PC寄存器 2、 ARM核的七种工作模式3、ARM核七种异常 ARM体系 1、基本概念 1.1 常见的处理器 PowerPC处理器&#xff1a;飞思卡尔MPC系列 DSP:TI达芬奇系列 FPGA&#xff1a;Xilinx赛灵思的ZYN…

python小游戏之摇骰子猜大小

最近学习Python的随机数&#xff0c;逻辑判断&#xff0c;循环的用法&#xff0c;就想找一些练习题&#xff0c;比如小游戏猜大小&#xff0c;程序思路如下&#xff1a; 附上源代码如下&#xff1a; 摇骰子的函数&#xff0c;这个函数其实并不需要传任何参数&#xff0c;调用后…

理性看待、正确理解 AI 中的 Scaling “laws”

编者按&#xff1a;LLMs 规模和性能的不断提升&#xff0c;让人们不禁产生疑问&#xff1a;这种趋势是否能一直持续下去&#xff1f;我们是否能通过不断扩大模型规模最终实现通用人工智能&#xff08;AGI&#xff09;&#xff1f;回答这些问题对于理解 AI 的未来发展轨迹至关重…