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

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:."

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值