使用pyinstaller在Python中嵌入.wav文件

乔治·雷文

这是我正在运行的代码:

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。因此,这个问题是相关的。

我修改了您的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

文档开始--add-data需要src和一个位置,;在Windows和:其他任何地方都分隔开在这里,我只是从本地目录中获取了它,并类似地将其“存储”在了分布式应用程序的根目录中。

尽管单文件(-F)选项有一点点负载开销,但它对我有用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章