Pyinstaller EXE 在启动时崩溃

Pyinstaller EXE Crashing Upon Start

所以我不确定这是否是放置它的正确位置,但我正在尝试将我的 Pygame 文件转移到更通用的文件中。第一个平台是Windows。在我添加一些与 Glyph 库相关的代码之前,它对我来说非常有用 (http://www.pygame.org/project-Glyph-1002-.html)

现在一启动就崩溃,我真的不知道为什么。谁能帮我这个?我从来没有做过回溯或任何事情,如果有帮助的话,这是我游戏的压缩包,我正在尝试使用 --onefile 命令执行此操作。

https://www.dropbox.com/sh/5x143gx95f6sy8j/AADsnPZFwdlrVpc1b8G8QcRja?dl=0

我尝试过的事情是这样的:添加 --hiddenfile=Glyph,检查创建的警告文件,并通过更改游戏中的行来调试自己,谷歌搜索直到我的手指流血

我无法尝试的事情,因为我找不到足够的信息:回溯,关于它为什么不工作的控制台,创建一个日志文件,告诉我出了什么问题,因为我想不通出来了。

唯一发生严重变化的是我的 Windows 10 更新,我确定这可能与它无法正常工作的原因有关。

谢谢! - 扎克

我已经在 Linux 上测试了您的游戏,并且在 Python 解释器中 运行 时玩得很开心。 我在使用 PyInstaller 时遇到了错误。因为你没有 post 你的错误我不知道它是否相同。 (-1 给你!) 如果你的错误是

Fatal Python error: (pygame parachute) Segmentation Fault

我有一个提示供您查看。 问题出在字体初始化中的glyph.py和editor.py:

FONT = Font(None,8)

初始化默认字体很麻烦。但它不可用。 如果您一直在谷歌搜索,您可能会发现 this or this

所以我所做的是修改 glymph.py 和 editor.py(制作本地副本并修改它)并将字体加载更改为

FONT = Font('silkscreen.ttf', 8)

silkscreen.ttf 或任何其他字体必须在您的工作目录中可用。错误消失了。

您可能希望根据 this hint 调整所有路径。

import sys
import os
...
if getattr(sys, 'frozen', False):
    # we are running in a bundle
    basedir = sys._MEIPASS
else:
    # we are running in a normal Python environment
    basedir = '.'

并使用

basedir + os.sep + 'your file name'

在所有来源中。

如果您想让您的游戏在 Linux 上运行,请将文件 Sounds/GBMusic.mp3 更改为 ogg 格式。 不幸的是,我没有设法使背景音乐正常工作(100% CPU)。所以我注释掉了这一行:

pygame.mixer.music.play(-1)

我希望我能帮助你解决问题,并能为进一步的发展提供一些提示。