Python &引用;模块';pygame';没有属性';初始'&引用;运行一个简单的pygame脚本

Python &引用;模块';pygame';没有属性';初始'&引用;运行一个简单的pygame脚本,python,pygame,Python,Pygame,当我运行pygame代码时,出现以下错误: >>> RESTART: C:/Users/lanra/Desktop/2018 backups/2018 python/pygame/pygame 2.py Traceback (most recent call last): File "C:/Users/lanra/Desktop/2018 backups/2018 python/pygame/pygame 2.py", line 1, in <module>

当我运行pygame代码时,出现以下错误:

>>> 
 RESTART: C:/Users/lanra/Desktop/2018 backups/2018 python/pygame/pygame 2.py 
Traceback (most recent call last):
  File "C:/Users/lanra/Desktop/2018 backups/2018 python/pygame/pygame 2.py", line 1, in <module>
    import pygame
  File "C:/Users/lanra/Desktop/2018 backups/2018 python/pygame\pygame.py", line 3, in <module>
    pygame.init()
AttributeError: module 'pygame' has no attribute 'init'

看起来您的测试脚本本地有一个名为
pygame.py
的脚本。这将被导入而不是库

修复方法是重命名您的本地
pygame.py
脚本(这可能是您正在研究pygame时的另一个版本),这样就不会发生冲突。通常,避免将项目文件命名为与正在使用的库相同的名称

您的代码中还存在其他错误(请阅读Pygame文档和示例),但这将是您需要应用的第一个修复,并且它不是Pygame特有的

以下是您的代码的工作版本:

import pygame
pygame.init()

win = pygame.display.set_mode((500,500))

pygame.display.set_caption("first game")

x = 50
y = 50
width = 40
height = 60
vel = 5

while True:
    pygame.time.delay(100)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()

    pygame.draw.rect(win, (255,0,0), win.get_rect())

    pygame.display.update()

注意
pygame.draw.rect
所需的额外参数,并调用
pygame.display.update()
。还修改了while循环,因为一旦调用了
pygame.quit()
您就不想调用类似
pygame.event.get()
的东西,否则您将得到关于没有视频系统的错误消息。

错误表明
pygame
中没有名为
init
的函数。您是否检查了pygame存在的内容的引用?您调用了您的程序
pygame 2.py
,似乎在同一目录中已经有另一个名为
pygame.py
。这就是被导入的那个。删除或重命名它。您不能将文件命名为
pygame.py
,否则Python会认为您的文件是pygame库。只需重新命名即可。@skrx您可以/应该是VTC,特别是因为OP可以单独接受作为副本的关闭。@ivan_pozdeev:对不起,我的错误。出于某种原因,该答案会显示在我的答案列表底部,即已删除答案的下方。这是投票最多的答案,但没有被接受。虽然我同意最初的错误是重复的,但我已经在这里为OP的代码显示了额外的修复,所以我将保留答案。我做到了!你很聪明@如果你解决了你的问题,请考虑答案。好,我是StAccess的新手。我接受了这个答案。你们能看到接受吗?@DragonProgram:是的。谢谢你接受这个答案,很高兴它对你有帮助。
import pygame
pygame.init()

win = pygame.display.set_mode((500,500))

pygame.display.set_caption("first game")

x = 50
y = 50
width = 40
height = 60
vel = 5

while True:
    pygame.time.delay(100)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()

    pygame.draw.rect(win, (255,0,0), win.get_rect())

    pygame.display.update()