从子目录导入Python文件不能使用pygame模块

时间:2016-04-26 21:23:33

标签: python import pygame subdirectory

我有 game.py ,如下所示

import pygame
from pygame.locals import *
pygame.init()
from classes import *

我的文件夹树是这样的:

game.py
/classes
   __init__.py
   Options.py

init .py文件:

from .Ms import *
from .Options import *

在我的 Options.py 文件中,我有以下代码:

class Options:
   clock = pygame.time.Clock()

基本上这是我要去的结构。我收到了这个错误。

Traceback (most recent call last):
   File "C:\Users\Abuzittin\Desktop\dalek\FINAL2\game.py", line 8, in <module>
    from classes import *
File "C:\Users\Abuzittin\Desktop\dalek\FINAL2\classes\__init__.py", line 2, in <module>
    from .Options import *
File "C:\Users\Abuzittin\Desktop\dalek\FINAL2\classes\Options.py", line 1, in <module>
    class Options:
File "C:\Users\Abuzittin\Desktop\dalek\FINAL2\classes\Options.py", line 8, in Options
    screen = pygame.display.set_mode(size) #pygame screen variable

NameError:名称'pygame'未定义

1 个答案:

答案 0 :(得分:0)

您还必须在Options.py文件中import pygame

顺便说一句,不要使用from module import *导入,因为如果你对不同模块中的函数或类具有相同的名称,它们会使代码更难阅读并导致问题。您可以保留from pygame.locals import *,但不要使用自己的模块。不过,我对__init__文件不太确定。