使用 pyinstaller 在 Python 中嵌入一个 .wav 文件
Embed a .wav file in Python with pyinstaller
这是我的代码 运行ning:
import tkinter
from pygame import mixer
root = tkinter.Tk()
mixer.init()
mixer.music.load(r'C:\Users\George\AppData\Local\Programs\Python\Python36-32\Scripts\Music\Am_lie_-_JY_Suis_Jamais_All_-Yann_Tiersen.wav')
mixer.music.play()
root.mainloop()
我用 py2exe 将其转换为 windows .exe:
pyinstaller -w -F -i "C:\Users\George\AppData\Local\Programs\Python\Python36-32\Scripts\test.ico" sound.py
我想要做的是在 py2exe 编译后将 wav 文件嵌入到 python.exe 中,这样如果 运行 来自不同的计算机,它就不需要该文件除了 Sound.exe 本身。
这可能吗?
我对 python 完全陌生。
我发现这段代码或许可以完成这项工作,但无法正常工作。
dfiles = [(".","Am_lie_-_JY_Suis_Jamais_All_-Yann_Tiersen.wav"])]
setup(
windows=[{'script':'filename.py'}],
data_files=dfiles,
options={'py2exe':{'bundle_files':1,'compressed':1}}
感谢任何帮助。
看来您使用的是 PyInstaller,而不是 py2exe。因此 this question 是相关的。
我修改了您的 mcve 示例以使用相对路径加载我的 wav 文件。
import tkinter
from pygame import mixer
root = tkinter.Tk()
mixer.init()
mixer.music.load("recy.wav")
mixer.music.play()
root.mainloop()
然后我将该数据文件包含在 pyinstaller
命令行中以构建可执行文件:
pyinstaller -w -F -i d_python.ico --add-data "recy.wav;." --log-level=WARN sound_test.py
从 documentation 开始,--add-data
需要 src 和一个位置,在 Windows 上用 ;
分隔,其他地方用 :
分隔。在这里,我只是从本地目录中抓取它,类似地 'stored' 它在分布式应用程序的根目录中。
这对我有用,尽管单文件 (-F) 选项有一点加载开销。
这是我的代码 运行ning:
import tkinter
from pygame import mixer
root = tkinter.Tk()
mixer.init()
mixer.music.load(r'C:\Users\George\AppData\Local\Programs\Python\Python36-32\Scripts\Music\Am_lie_-_JY_Suis_Jamais_All_-Yann_Tiersen.wav')
mixer.music.play()
root.mainloop()
我用 py2exe 将其转换为 windows .exe:
pyinstaller -w -F -i "C:\Users\George\AppData\Local\Programs\Python\Python36-32\Scripts\test.ico" sound.py
我想要做的是在 py2exe 编译后将 wav 文件嵌入到 python.exe 中,这样如果 运行 来自不同的计算机,它就不需要该文件除了 Sound.exe 本身。
这可能吗?
我对 python 完全陌生。
我发现这段代码或许可以完成这项工作,但无法正常工作。
dfiles = [(".","Am_lie_-_JY_Suis_Jamais_All_-Yann_Tiersen.wav"])]
setup(
windows=[{'script':'filename.py'}],
data_files=dfiles,
options={'py2exe':{'bundle_files':1,'compressed':1}}
感谢任何帮助。
看来您使用的是 PyInstaller,而不是 py2exe。因此 this question 是相关的。
我修改了您的 mcve 示例以使用相对路径加载我的 wav 文件。
import tkinter
from pygame import mixer
root = tkinter.Tk()
mixer.init()
mixer.music.load("recy.wav")
mixer.music.play()
root.mainloop()
然后我将该数据文件包含在 pyinstaller
命令行中以构建可执行文件:
pyinstaller -w -F -i d_python.ico --add-data "recy.wav;." --log-level=WARN sound_test.py
从 documentation 开始,--add-data
需要 src 和一个位置,在 Windows 上用 ;
分隔,其他地方用 :
分隔。在这里,我只是从本地目录中抓取它,类似地 'stored' 它在分布式应用程序的根目录中。
这对我有用,尽管单文件 (-F) 选项有一点加载开销。