如何将我的 pyglet 应用程序和所有资源编译到一个 exe 文件中?
Posted
技术标签:
【中文标题】如何将我的 pyglet 应用程序和所有资源编译到一个 exe 文件中?【英文标题】:How do I compile my pyglet app and all the resources into one exe file? 【发布时间】:2018-09-27 14:03:15 【问题描述】:我正在处理一个需要创建应用的学校项目。我使用了很多 wav 文件以及一些 png 和 gif 文件。我使用 pyinstaller 将所有内容编译到一个 exe 文件中,它完成了工作。但是,似乎提到的资源并没有随之而来。所以我做了一些研究,我弄乱了规范文件和数据字段,我补充说:
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 都很陌生。
谢谢。
【问题讨论】:
一般情况下,即使使用C++等编译语言,图像和其他资源文件也不会编译成EXE。只要看看你安装Microsoft Office或任何游戏的文件夹,你就会看到很多资源文件的文件夹。 【参考方案1】:我完全同意 Code-Apprentice 的评论。但是,也许您想查看zipfile
模块。在有人使用 zip 程序之前,您将只有一个资源文件、节省空间并添加一点隐蔽性。您甚至不需要解压磁盘上的资源,而是使用io.StringIO
或io.BytesIO
将它们存储在内存中。
加载时间,至少在开始时,显然会增加。
【讨论】:
以上是关于如何将我的 pyglet 应用程序和所有资源编译到一个 exe 文件中?的主要内容,如果未能解决你的问题,请参考以下文章