【问题标题】:PyInstaller .exe file not workingPyInstaller .exe 文件不工作
【发布时间】:2015-02-13 17:04:17
【问题描述】:

编辑:我发现错误是无法打开资源。将目录复制到 .exe 所在的文件夹中并没有修复它。我尝试从 .spec 文件中删除资源,.exe 文件的大小现在是 9 MB 而不是 52 MB,所以我很确定这些资源已包含在内,但不知何故它们似乎无法被。EXE文件。如果有任何问题,This 是我的 .spec 文件 - 我只修改了 Tree 以包含资源、.exe 文件名和图标。

换句话说,现在的问题是:为什么exe找不到我的游戏资源,我该怎么做才能解决这个问题?另外,我意识到我的资源文件夹有两个子文件夹 - 这是否意味着我必须以不同的方式编写树?

我已经用 Python(也使用 Pygame)制作了一个游戏,并且想要制作一个可执行文件,以便分发它。 PyInstaller 似乎非常适合,最终,经过一段时间的搜索,我发现了如何让它在 this guide 中工作。在我调整我的代码以使第 2 步正常工作后,我创建了 .spec 文件,向其中添加了包含资源的目录(如第 5 步,并包括字体文件),将其复制到 .spec 文件所在的同一文件夹中最后我跑了

build.py game.spec

我发现 .exe 文件正是它应该在的位置。但是,当我打开它时,它会在几秒钟后再次关闭,我认为它就在主菜单出现之前。我不太确定这是否又是字体搞砸了,因为我确保将它也包含在资源中......

不幸的是,在网上搜索解决方案对我一点帮助都没有,特别是因为该项目的一半链接现在已损坏。

如果有人知道这里出了什么问题(或需要更多详细信息),请告诉我。

详情:

Python 版本:2.7.7 32 位

Pygame 版本:1.9.3 32 位

PyInstaller 版本:1.5 32 位

系统:Windows 8.1 64 位(目前 32 位程序都运行良好)

【问题讨论】:

    标签: python pygame pyinstaller


    【解决方案1】:

    尝试打开命令提示符并将exe拖入其中并按回车键,这样您将捕获错误(如果有)然后更新您的问题,更多信息==更多帮助。

    我从来没有使用过 pyinstaller,所以我真的帮不了你。

    另外我建议你试试 py2exe,它与 pygame 配合得很好(至少对我而言),之后你可以使用 NSIS 或 Inno 进行设置。

    编辑:

    如果 .exe 无法永久保存高分(正如您在下面的评论中所说),请尝试以管理员身份运行 exe,这可能只是写入权限的问题,或者可能是您的防病毒软件不允许它写入(Avast 的沙盒,Norton 的未知/稀有文件)。

    【讨论】:

    • 谢谢!我这样做了,它根据错误它毕竟找不到我的资源。我尝试将目录复制到与游戏相同的文件夹中,但这也没有用,所以我猜资源出了点问题,但我不确定是什么 - 我很快就会编辑我的问题。至于py2exe,我实际上也尝试过一次并且它有效,但只是一段时间。我不知道为什么,但几天后它停止工作,无论我尝试什么,除了一个简单的 Hello World 程序外,它对任何东西都不起作用。我也有关于这个的问题,但仍然没有答案......
    • 听起来你没有告诉 PyInstaller 在哪里寻找资源,或者找到它们是愚蠢的。同样,我不知道它是如何工作的,所以我可能错了
    • @MMM 我建议使用 py2exe。
    • @pss 哈哈,我想这会更好,但在继续使用 PyInstaller 之前,我已经坚持使用 py2exe(如果您查看我最后一个问题的时间戳,则为 6 个月)我实际上已经因为失去的睡眠和理智而变得身体不适。而且我仍然不知道为什么它决定不再转换我的游戏,也不再转换以前使用的游戏版本,但仍会编译 Hello World。基本上,如果有人告诉我如何解决我不断遇到的“分段错误”,我只会考虑/能够再次使用 py2exe。
    【解决方案2】:

    我没有找出问题所在,但我确实设法让它工作。我首先使用 pip 安装更新版本的 PyInstaller (2.1) 并再次完成相同的步骤,但这次是在 Scripts 目录中并运行 pyi-makespec 和 pyi-build 而不是 makespec.py 和 build.py 因为这就是新版本的作品,我猜。起初它仍然会抱怨资源丢失,除非我从 cmd 运行它,但我认为这实际上是因为我忘记了第 5 步(makespec 文件中的树)。由于某种原因,现在 .exe 无法永久保存高分,但除此之外它运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-05
      • 2013-06-12
      • 2023-03-22
      • 1970-01-01
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多