我正在做一个学校项目,我们需要创建一个应用程序。我使用了很多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的新手。
谢谢。
答案 0 :(得分:0)
我完全同意Code-Apprentice的评论。但是,也许您想研究zipfile
模块。您将只有一个资源文件,可以节省空间并增加一点点的晦涩感,直到有人使用zip程序为止。您甚至无需解压缩光盘上的资源,而使用io.StringIO
或io.BytesIO
将它们存储在内存中。
至少从启动开始,加载时间会明显增加。