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
相关产品推荐
相关产品推荐

