Pyinstaller-错误消息:名称角色未定义

时间:2019-10-10 14:56:51

标签: python pygame pyinstaller

我用Pygame和MU IDE创建了一个小游戏。然后,我想使用pyinstaller将.py文件转换为.exe文件。创建exe文件没有问题。但是,如果我要执行创建的exe文件,则会收到以下错误消息:“未定义名称Actor”。使用MU IDE,我可以毫无问题地执行相应的.py文件。如何解决该问题?

完整的错误消息是:

来自pygame社区的你好。 https://www.pygame.org/contribute.html

Traceback (most recent call last):   
File "test.py", line 11, in module   
 NameError: name 'Actor' is not defined   
    [1920] Failed to execute script test

代码如下:

from random import randint
import time
import pygame

HEIGHT = 800
WIDTH = 800
score = 0
time_left = 10
banana = Actor("banana")
monkey = Actor("monkey")

pygame.mixer.init()
pygame.mixer.music.load("music\\music.mp3")
pygame.mixer.music.play(-1)

background = pygame.image.load("images\\background.png")

def draw():
    screen.blit("background",(0,0))
    banana.draw()
    monkey.draw()
    screen.draw.text("Anzahl der gesammelten Bananen: " + str(score), color = "black", topleft=(10,10))
    screen.draw.text("verbleibende Sekunden: " + str(time_left), color = "black", topleft=(10,50))

def place_graphics():
    banana.x = randint(125, 790)
    banana.y = randint(186, 790)
    monkey.x = 50
    monkey.y = 740

def on_mouse_down(pos): 
    global score
    if banana.collidepoint(pos):
        score = score + 1 
        place_graphics()
    if monkey.collidepoint(pos):
        effect = pygame.mixer.Sound("sounds\\monkey.wav")
        effect.play()

def update_time_left():
    global time_left
    if time_left:
        time_left = time_left - 1
    else:
        game_over()

place_graphics()

clock.schedule_interval(update_time_left, 1.0)

def game_over():
    global score
    screen.fill("green")
    screen.draw.text("Game Over: Du hast " + str(score) + " Bananen gesammelt!", topleft=(100,350), fontsize=40)
    screen.draw.text("Magst du nochmal spielen? ja [j] oder nein [n]", topleft=(150,450), fontsize=30)
    pygame.display.update()

0 个答案:

没有答案