【问题标题】:pygame.error: File is not a Windows BMP filepygame.error: 文件不是 Windows BMP 文件
【发布时间】:2013-05-10 17:41:29
【问题描述】:

跑步:
Mac OSX 山狮 10.8.3
Python 2.7.2
Pygame 1.9.2

我有一个简单的 python pygame 程序,可以在屏幕上显示图像,当我在 IDE 中运行它时效果很好。当尝试使用 py2app 使其成为独立程序时出现问题,我收到错误:

pygame.error:文件不是 Windows BMP 文件

我做了一些研究,发现这可能是 pygame 或 SDL_image.framework 的错误,所以我重新安装了两者,我得到了同样的错误。但是,当我使用 BMP 图像时,程序运行良好,尽管我不能使用 .png 或 .jpg 等图像格式。

window.py:

import pygame,sys
from pygame.locals import *

pygame.init()
size=[700,500]
screen=pygame.display.set_mode(size)
clock=pygame.time.Clock()

img = pygame.image.load("Images/img.png") # Error generated here

# -------- Main Program Loop -----------
while True:
    # ALL EVENT PROCESSING SHOULD GO BELOW THIS COMMENT
    for event in pygame.event.get():
        if event.type == QUIT:
            isRunning = False
            pygame.quit()
            sys.exit()

    screen.blit(img,(300,300))

    pygame.display.flip()
    clock.tick(20)

如果有任何用处,这是我的 setup.py 文件:

from setuptools import setup

APP = ['window.py']
DATA_FILES = [('', ['images'])]
OPTIONS = {'argv_emulation': True}

setup(
      app=APP,
      data_files=DATA_FILES,
      options={'py2app': OPTIONS},
      setup_requires=['py2app'],
      )

2.7.2 的问题解决方案:

原来我的 pygame 文件已损坏或损坏。为了解决这个问题,我用新的 pygame 文件替换了应用程序中的旧 pygame 文件。应用程序中的 pygame 文件夹位于“app.app/Contents/Resources/lib/python2.7/lib-dynload”。用这个替换旧的 pygame 文件夹,希望它能正常工作:

https://dl.dropboxusercontent.com/u/84011326/Youtube%20files/pygame.zip

其他解决方案

我为 mac 下载了 python 版本 2.7.5,这只是修复了从无法加载 pygame 混合器到能够加载 jpg 和 png 图像的所有错误。

【问题讨论】:

    标签: macos python-2.7 pygame py2app


    【解决方案1】:

    我是 python 的相对菜鸟。操作系统升级后刚刚安装了 python 3.3.5 和 pygame 1.9.2(推荐)。 pygame 无法识别非 BMP 图像时遇到了这个问题,所以我之前的所有工作都没有运行。

    在这里和其他地方阅读了许多类似的问题后,我决定回滚版本。来自 pygame 站点 (http://pygame.info/downloads/) 的 Python 3.3.0 和 pygame-1.9.2a0.win32-py3.3.msi 不起作用。

    进一步回滚到最后一台机器 python 3.2.3 和 pygame pygame-1.9.2a0.win32-py3.2.msi 的组合似乎有效。操作系统 Win 7。>>>pygame.image.get_extended = 1

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。能够通过简单的 python 更新来修复它。

      初学者的快速解决方案:

      1. 安装 Python 2.7.5

      2. 进入应用程序 --> Python 2.7 --> 更新 Shell 配置文件

      3. Python 2.7.5 现在应该是您的默认 Python。使用它(在终端中)运行您的应用程序,一切正常。

      到目前为止,这是解决此问题的最简单方法。希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多