这是我正在运行的代码:
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] 删除。
我来说两句