import * 仅允许在模块级别。使用 Pyscripter 的 Python 3.3

use*_*015 5 python pygame pyscripter

一般来说,我对编程还很陌生,我刚开始使用 python 尝试使用 pygame 制作一个简单的游戏。如果我在 Python IDLE shell 中运行以下代码,它工作正常,但如果我使用 Pyscripter,我会收到错误消息:

SyntaxError: import * only allowed at module level
Run Code Online (Sandbox Code Playgroud)

我真的很喜欢使用 Pyscripter,因为到目前为止它使学习语法变得更加容易,但现在我不明白出了什么问题。任何帮助都会很棒。谢谢。

import pygame, sys
from pygame.locals import *
pygame.init()
DISPLAYSURF = pygame.display.set_mode((400,300),0,32)
pygame.display.set_caption('Hello World!')
while True: #main game loop
     for event in pygame.event.get():
         if event.type == QUIT:
            pygame.quit()
            sys.exit()
     pygame.display.update()
Run Code Online (Sandbox Code Playgroud)

Kri*_*kar -1

问题是,当您执行时,from pygame.locals import *您是从文件而不是模块访问所有内容。当你做类似的事情时from pygame import *,它应该有效。只是你只能import *在模块级别使用

  • 这似乎完全错误,因为“pygame.locals”是一个模块,它是“pygame”包的子模块。问题不在于导入*来自*,而在于导入*到*哪里。 (2认同)