You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python导入错误:无法从settings模块导入Settings类

解决ImportError: cannot import name 'Settings' from 'settings'问题

错误信息

ImportError: cannot import name 'Settings' from 'settings'

主模块代码

import sys
import pygame

from settings import Settings

class AlienInvasion:

    def __init__(self):
        pygame.init()
        self.settings = Settings()  

        self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))  
        pygame.display.set_caption("Alien Invasion")

        self.bg_color = self.settings.bg_color

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

            self.screen.fill(self.bg_color)  

            pygame.display.flip()

if __name__ == '__main__':
    ai = AlienInvasion()
    ai.run_game()

Settings模块代码

class Settings:

    def __init__(self):
        self.screen_width = 1080
        self.screen_height = 800
        self.bg_color = (100, 10, 200)

排查与解决步骤

  • 检查Python导入路径:在主脚本开头添加以下代码,确认当前文件所在目录是否在sys.path中:
    import sys
    import os
    print(sys.path)
    print(os.path.dirname(os.path.abspath(__file__)))
    
    如果当前目录不在路径里,手动添加路径:
    import sys
    import os
    sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
    
  • 删除__pycache__文件夹:项目目录下如果存在这个缓存文件夹,删除它后重新运行脚本,避免旧缓存导致的导入问题。
  • 排查同名模块冲突:检查Python环境的site-packages等系统目录,确认没有其他名为settings.py的文件,避免命名冲突。
  • 验证运行目录:确保运行主脚本时,命令行的工作目录是两个文件所在的目录,或直接使用脚本的绝对路径执行。

内容的提问来源于stack exchange,提问作者Ivan Loban

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 16:22:04