【问题标题】:How do I compile my pyglet app and all the resources into one exe file?如何将我的 pyglet 应用程序和所有资源编译到一个 exe 文件中?
【发布时间】: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或任何游戏的文件夹,你就会看到很多资源文件的文件夹。

标签: python compilation exe pyinstaller pyglet


【解决方案1】:

我完全同意 Code-Apprentice 的评论。但是,也许您想查看zipfile 模块。在有人使用 zip 程序之前,您将只有一个资源文件、节省空间并添加一点隐蔽性。您甚至不需要解压磁盘上的资源,而是使用io.StringIOio.BytesIO 将它们存储在内存中。

加载时间,至少在开始时,显然会增加。

【讨论】:

    猜你喜欢
    • 2011-10-05
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多