运行:
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 等图像格式。
窗口.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 图像的所有错误。