gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:16 25 4
gpt4 key购买 nike

我在 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

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

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

最佳答案

我多次遇到同样的问题,但我找到了处理方法。

问题似乎两种可能的依赖关系之间存在冲突。文件 jpeg.dll 包含在 JRE 中(在 Windows 上,类似于 C:\Program Files\Java\jre6\bin\),但它是错误的.它应该包含在 Pygame 目录中,位于您的 Python 安装中,位于 C:\Python31\lib\site-packages\pygame\。不知道为什么 cx_Freeze 更喜欢 JRE 中的那个,尽管......

如何解决?这很容易。只需将正确的文件(来自 Pygame 的文件)复制到执行 cx_Freeze 脚本的目录。当您启动它时,脚本将首先在当前目录中查找,然后找到正确的 jpeg.dll。您的可执行文件现在应该能够导入 PNG 图像。

关于python - SDL/Pygame 无法使用 cx_Freeze 加载 PNG 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2883237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com