【问题标题】:Py2Exe won't successfully compile the pygame.font module on Python 3Py2Exe 无法在 Python 3 上成功编译 pygame.font 模块
【发布时间】:2016-01-14 21:55:40
【问题描述】:

我在 Python 3 上使用 pygame 模块制作了一个程序,它在 python 中运行良好,但是当我尝试编译使用 py2exe 时它不会运行。 (我只是在尝试运行它时得到 programName.exe has stop working 错误)。

我设法将这个问题缩小到 pygame.font 模块,因为当我评论使用该模块的所有行时,一切正常。我试图在 py2exe 中使用 -i 标志强制包含该模块,但它似乎没有改变任何东西......

我做错了什么?

编辑:我设法得到了程序不工作的原因 - 它因为找不到 build\executable.exe\pygame\freesansbold.ttf 而崩溃。我不明白为什么 pygame 文件夹应该位于我的可执行文件名称的文件夹中? (当然,我不能在目录中创建与现有文件同名的文件夹)。如果有人知道如何解决它,请帮忙!!

【问题讨论】:

  • python 不是为创建 exe 文件而设计的 - 所以没有简单有效的方法。
  • 我知道,但是上面的问题是py2exe模块的bug,还是我做错了什么?
  • 告诉我错误信息,我可以修复它。我对 cx_Freeze 也有同样的问题。这是一个简单的修复,我只是不记得我做了什么,如果您粘贴错误消息,我会弄清楚的。
  • 我现在发布答案了。

标签: python python-3.x compilation pygame py2exe


【解决方案1】:

我在使用 cx_Freeze 时遇到了同样的问题,所以希望这对你也有用。打开你的 pygame 包文件夹。应该是C:\Python34\Lib\site-packages\pygame。应该有一个名为 freesansbold.ttf 的 True Type 字体文件。复制该文件,然后打开包含您的 exe 程序的文件夹。应该有一个名为 library.zip 的压缩文件。打开它并转到压缩文件中的 pygame 文件夹。应该看起来像这样\build\exe.win32-3.4\library.zip\pygame。只需将 freesansbold.ttf 文件粘贴到该文件夹​​中,它应该可以正常工作。

【讨论】:

  • 抱歉回复晚了....名为 library 的压缩文件应该在哪里?我真的没有得到那部分。
  • 我不知道py2exe有没有,但是cx_Freeze有没有可以贴出可执行文件夹中所有文件的截图或者直接列出来?
  • @VladimirShevyakov Nvm 我刚刚快速使用了 py2exe,它应该在 dist 文件夹中
  • 抱歉回复时间长...可执行文件夹中的文件有:executable.exe、libiomp5md.dll、MSVCR100.dll、SDL.dll、SDL_image.dll、SDL_mixer.dll、SDL_ttf .dll , smpeg.dll
  • freesansbold.ttf 应该去哪里?
【解决方案2】:

我设法找到了方法!通过在 build_exe 命令中包含 -l library.zip 参数,然后按照 DeliriousSyntax 在上面的答案中给出的说明,我设法让它工作!

【讨论】:

    猜你喜欢
    • 2020-04-04
    • 2017-06-15
    • 2022-03-04
    • 2020-01-22
    • 1970-01-01
    • 2012-12-10
    • 2020-04-04
    • 2012-07-01
    • 1970-01-01
    相关资源
    最近更新 更多