【问题标题】:Pyinstaller EXE Crashing Upon StartPyinstaller EXE 启动时崩溃
【发布时间】:2016-03-25 18:51:30
【问题描述】:

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

现在它在启动时崩溃,我真的不知道为什么。谁能帮我这个?我从来没有做过回溯或任何事情,如果有帮助,这是我的游戏的 zip,我正在尝试使用 --onefile 命令来做到这一点。

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

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

由于找不到足够的信息而无法尝试的事情:回溯、关于为什么它不起作用的控制台、创建一个日志文件来告诉我出了什么问题,因为我无法弄清楚.

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

谢谢! - 扎克

【问题讨论】:

    标签: python pygame pyinstaller


    【解决方案1】:

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

    Fatal Python error: (pygame parachute) Segmentation Fault
    

    我有提示告诉你去哪里看。 问题出在字体初始化中的glyph.py和editor.py:

    FONT = Font(None,8)
    

    这会导致初始化默认字体。但它不可用。 如果您一直在谷歌上搜索,您可能会找到 thisthis

    所以我所做的是修改 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)
    

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

    【讨论】:

    • 哇,谢谢!我自己没有收到错误,EXE 只是崩溃了,我不知道如何调试它。我会弄乱 Glyph 并回复你!
    • 另外,我有 Ubuntu,当我播放背景音乐时它工作得很好,我不知道你为什么会这样?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 2021-02-19
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多