运行Alien_invasion.py报ImportError无法从settings导入Settings怎么解决
报错产生原因
- 两个文件不在同级目录:
settings.py和Alien_invasion.py没有存放在同一个文件夹下,Python导入模块时默认搜索当前运行工作目录,找不到目标文件就会报错。 - 文件名拼写/大小写错误:
settings.py文件名拼写错误(比如写成setting.py、Settings.py),和导入语句里的模块名不匹配。 - 同名模块冲突:当前环境中存在其他名为
settings的模块(比如自己写了重名的其他文件、安装的第三方库自带同名模块),Python优先导入了非你编写的settings模块,里面没有Settings类。 - 运行工作目录错误:启动脚本时没有在两个文件所在的文件夹下执行命令,Python的模块搜索路径里没有包含
settings.py所在的目录。
修复方案
- 先核对文件位置:把
settings.py和Alien_invasion.py放到同一个文件夹中,执行启动命令时也要切换到这个文件夹下操作。 - 核对文件名:确保
settings.py文件名全小写,没有拼写错误,不要出现大小写偏差、漏写字母的问题。 - 排查同名冲突:如果还是报错,可以在
Alien_invasion.py的导入语句前加两行代码,确认导入的模块是不是你自己写的:
import settings print(settings.__file__)
如果打印出来的路径不是你存放settings.py的路径,就把对应路径下的重名文件删除/重命名,或者卸载同名第三方包即可。
额外优化提示:你代码里Alien_invasion.py中单独定义了bg_color变量,其实已经在Settings类中定义了这个属性,后续可以直接用ai_settings.bg_color调用,不用重复定义。
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

