SDL/Pygame 无法使用 cx_Freeze 加载 PNG 图像

5 python pygame sdl cx-freeze

我在 Windows 上运行 Python 3.1,并尝试通过 cx_Freeze 将 Pygame 脚本作为可执行文件分发。现在它似乎正在工作,除了 exe 构建无法加载我的任何图像:

Cannot load image: C:\path\to\build\exe.win32-3.1\resources\image.png
File is not a Windows BMP file
Run Code Online (Sandbox Code Playgroud)

谷歌搜索显示,当 SDL 成像库未正确包含时,就会发生这种情况。然而,SDL_image.dlllibpng12-0.dll都被 cx_Freeze 放入我的构建目录中,所以在我看来一切都应该没问题。为什么无法加载PNG图像?

编辑:我通过将脚本移植到 Python 2.6 并使用 py2exe 来“解决”这个问题,因为它无论如何都有一些我需要的功能。

mca*_*dre 1

通过插入一些 python 代码来进行测试,以显示一条消息,指示库已加载,并显示另一条消息,指示它们的加载导致错误。

try:
   import SDL_image
   print "Loaded SDL_image"
except:
   print "Failed to import SDL_image"

try:
   import libpng
   print "Loaded libpng"
except:
   print "Failed to import libpng"
Run Code Online (Sandbox Code Playgroud)