我正在使用pygame在2048年做一个项目。
双击时程序运行正常,也可以通过命令提示符运行。 < - 这是使用c:\ Python27 \ python.exe
但是,当我使用pyinstaller尝试将其更改为exe时,以下代码会出错:
class newSprite(pygame.sprite.Sprite):
def __init__(self,filename):
if filename != "0.png":
pygame.sprite.Sprite.__init__(self)
self.images=[]
self.images.append(loadImage(filename))
print(self.images[0])
self.image = pygame.Surface.copy(self.images[0])
self.currentImage = 0
self.rect=self.image.get_rect()
self.rect.topleft=(0,0)
self.mask = pygame.mask.from_surface(self.image)
self.angle = 0
做的:
gameboard = newSprite("game board.png")
原因
TypeError:descriptor "copy" requires a pygame.surface object but received a "Nonetype".
当我使用c:\ Windows \ py.exe运行脚本时,我收到同样的错误。
我怀疑Pyinstaller使用c:\ Windows \ py.exe而不是c:\ Python27 \ python.exe作为其解释器。我该如何解决这个问题?
答案 0 :(得分:0)
文件名中有一个空格:" game_ space _board.png"。这通常会导致错误,应该避免。说实话,我不知道这是否是你问题的根本原因,但值得一试。