Python程序中的NameError,即使它似乎已正确设置

时间:2019-01-21 06:43:13

标签: python python-3.x image

我从Mission Python书中复制了该程序:

room_map = [[1,1,1,1,1],
    [1,0,0,0,1],
    [1,0,1,0,1],
    [1,0,0,0,1],
    [1,0,0,0,1],
    [1,0,0,0,1],
    [1,1,1,1,1]]

WIDTH = 800 # window size
HEIGHT = 800

top_left_x = 100
top_left_y = 150

DEMO_OBJECTS = [images.floor, images.pillar]

room_height = 7
room_width = 5

def draw():
    for y in range(room_height):
        for x in range(room_width):
            image_to_draw = DEMO_OBJECTS[room_map[y][x]]
            screen.blit(image_to_draw,
                        (top_left_x + (x * 30),
                        top_left_y + (y * 30) - image_to_draw.get_height()))

当我运行它时,出现此错误:

Traceback (most recent call last):
  File "/home/pi/escape/listing3-5.py", line 15, in <module>
    DEMO_OBJECTS = [images.floor, images.pillar]
NameError: name 'images' is not defined

我想也许我应该导入Images或一些类似的软件包,但是书中没有提到这样做,所以我不确定。 python文件位于正确的位置,包含我的图像的images文件夹位于同一文件夹中。我是否错过任何明显的事情?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我试图通过IDLE运行该程序。我应该使用Pygame Zero来运行它。当我执行命令pgzrun listing3-5.py时,它可以工作。

我想Pygame Zero已经定义了images