导入模块提供SyntaxError

时间:2015-08-20 01:18:57

标签: python pygame python-import

我有一个使用Pygame和sys的模块:

import pygame, sys

font = pygame.font.SysFont('sans-serif', 72)

class console:

    def text(self, surface, text, pos):
        text = font.render(text, 1, (255, 255, 255))
        surface.blit(text, (pos[0], pos[1]))

此模块不会返回任何类型的错误。我还有一个简短的主程序,用于导入和使用该模块:

import pygame
pygame.init()
import pygame-console.py

screen = pygame.display.set_mode([640, 480])

console = pygame-console.console()

console.text(screen, 'Hello World!', (0, 0))

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()

主程序在第三行返回一个SyntaxError,如下所示:

File "C:\Python25\pgTESTimport.py" line 3
import pygame-console.py
^
SyntaxError: invalid syntax
Script terminated.

由于IDLE在sys.exit()方面的困难,我使用的是Stani的Python编辑器。谁能告诉我这段代码有什么问题?为什么它会在看起来很正常的代码上返回SyntaxError?

1 个答案:

答案 0 :(得分:1)

这不是您导入模块的方式,您最后不需要提供.py,也不能直接导入名称中带有-的模块。

您需要将文件重命名为其中没有-的内容,例如pygameconsole.py,然后使用 -

导入
import pygameconsole

或者,如果您不想重命名该文件,并希望在名称中保留-,则可以使用importlib导入该文件 -

import importlib
pygameconsole = importlib.import_module('pygame-console')

然后您可以使用pygameconsole

来使用它