如何将pyglet应用程序和所有资源编译到一个exe文件中?

时间:2018-09-27 14:03:16

标签: python compilation exe pyinstaller pyglet

我正在做一个学校项目,我们需要创建一个应用程序。我使用了很多wav文件以及一些png和gif文件。我使用pyinstaller将所有内容编译为一个exe文件,即可完成工作。但是,似乎提到的资源并没有附带。因此,我做了一些研究,然后弄乱了spec文件,并在datas字段中添加了:

datas=[('*.wav','.'),('*.png','.'),('*.gif','.')],

然后我再次编译它。我写了

py -m PyInstaller py -m PyInstaller Main.py --icon=icon.ico --name "Main" --distpath "Final Program"  --noconsole

,当我打开文件时,它冻结了。我该如何解决?如果我不执行--onefile,则工作正常。如果我愿意

py -m PyInstaller Main.py --icon=icon.ico --name "Main" --distpath "Final Program" --add-data "*.wav;." --add-data "*.png;." --add-data "*.gif;." --noconsole

它也可以正常工作,但是会创建一个文件夹。有什么方法可以将它们全部合并为一个可执行文件? 我真的是pyinstaller和pyglet的新手。

谢谢。

1 个答案:

答案 0 :(得分:0)

我完全同意Code-Apprentice的评论。但是,也许您想研究zipfile模块。您将只有一个资源文件,可以节省空间并增加一点点的晦涩感,直到有人使用zip程序为止。您甚至无需解压缩光盘上的资源,而使用io.StringIOio.BytesIO将它们存储在内存中。

至少从启动开始,加载时间会明显增加。