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 sysdef resource_path(relative_path):"""获取资源文件的绝对路径"""try:# PyInstaller 创建了一个临时文件夹,存放已打包的文件base_path = sys._MEIPASSexcept 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:."
希望对大家有所帮助,如有遇到相关问题,欢迎大家在评论区留言。