python中自己的类不能被导入

我自己编写了一个类

class Settings():
    def __init__(self):
        self.screen_width=1200
        self.screen_height=800
        self.bg_color=(230,230,230)

然后我想在引用

import sys
import pygame

from settings import Settings
def run_game():
    pygame.init()
    ai_settings=Settings()
    screen=pygame.display.set_mode(
        (ai_settings.screen_width,ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")
    bg_color=(230,230,230)
    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                sys.exit()
        
        screen.fill(ai_settings.bg_color)
        pygame.display.flip()
        
run_game()        

但是最后的结果是这样的

Traceback (most recent call last):
  File "alien_invasion", line 5, in <module>
    from settings import Settings
ModuleNotFoundError: No module named 'settings'

我不知道到底是什么原因,是path问题还是我的设置有问题,我用的是geany

阅读 6.4k
3 个回答
新手上路,请多包涵

将_init_变为__init__(是两横不是一横)

你的settings.py和alien_invasion.py在同一路径下? 如果不是需要加到path里才行

import sys
sys.path.append('../my_settings_path')
from settings import Settings

我也遇到你的问题,不过跟你的不同,你的提示是说你的那个settings的文件没找到,应该是你没有存或者不在你的主文件同一路径下,就是上面第二个回答。我的问题刚好是上面的第一个回答,两个下划线连在一起,看成了一个下划线,导致明明有类,但是系统就是不认。因为解决了困挠我的问题,深表感激,特意向芥菜种致谢!!有感于此,觉得人人为我,我也应该为人人,所以尽我的微薄之力,再重复回答一次,希望能够帮到也在学习这本书的人。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题