Python模块导入报错:ModuleNotFoundError: No module named 'consts'
解决ModuleNotFoundError: No module named 'consts'问题
问题原因
你的StartApp.py位于basics目录下,而consts是basics的子目录,直接用from consts.Key import Values属于绝对导入,Python会从项目根目录(main.py所在目录)开始查找consts,但根目录下并没有这个模块,所以触发报错。
解决方案
方案1:使用相对导入(推荐)
在StartApp.py中修改导入语句为相对路径,.代表当前所在的basics目录:
from .consts.Key import Values
方案2:使用绝对导入(需配置路径)
如果偏好绝对导入,需要先把项目根目录加入Python的搜索路径,再修改导入语句:
- 在
StartApp.py开头添加以下代码,将根目录(main.py所在目录)加入sys.path:
import sys import os # 获取当前文件的父目录(basics)的父目录(项目根目录) root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(root_dir)
- 修改导入语句为绝对路径:
from basics.consts.Key import Values
额外注意事项
你的games目录下的初始化文件命名错误,应该是__init__.py(前后各两个下划线),而不是__init.py,修正后Python才能将games识别为合法的Python包。
内容的提问来源于stack exchange,提问作者user18521537
相关产品推荐
相关产品推荐

