2015-08-20 3 views
0

У меня есть модуль, используя Pygame и SYS:Импорт модуля обеспечивает SyntaxError

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. 

Я использую Python редактор Стани в из-за сложности IDLE с sys.exit(). Может ли кто-нибудь сказать мне, в чем проблема с этим кодом? Почему он возвращает SyntaxError на нормальный код?

+0

Черточка означает минус. Python видит, что вы пытаетесь вычесть имя модуля из имени модуля и запутывается. Также отпустите '.py'. – Kevin

+0

Это имеет смысл! Я, должно быть, очень устал. – ajbengineer

ответ

1

Это не то, как вы импортируете модули, вам не нужно указывать .py в конце, также вы не можете напрямую импортировать модули с - на имя.

Вы бы либо нужно переименовать файл что-то без - в нем, как pygameconsole.py, а затем импортировать его с помощью -

import pygameconsole 

Или, если вы не хотите, чтобы переименовать файл, и вы хотите сохранить - в имени, вы можете использовать importlib импортировать -

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

Затем вы можете использовать его с помощью pygameconsole.

+0

Спасибо! Я, наверное, очень устал, мне показалось, что я хорошо знаю, как импортировать модули, я не чужой для python. Но я не знал о importlib или об этом конкретном ограничении модулей. Что-то, что все мои книги забыли оставить ... Спасибо! – ajbengineer

Смежные вопросы