运行main.py遇ModuleNotFoundError: No module named 'api'问题求助
解决Python模块导入错误问题
问题原因
直接运行ChzzkRun.py时,Python会自动将当前文件所在目录加入模块搜索路径(sys.path),因此能正常找到同目录下的api.py。但从外部的main.py导入ChzzkRun时,搜索路径是main.py所在的根目录,此时api.py不在搜索范围内,就会触发ModuleNotFoundError。
解决方案
方法1:使用相对导入
修改ChzzkRun.py中的导入语句为相对导入,因为api.py和它属于同一包:
from . import api
注意:需要在ChzzkChatLog目录下新建一个空的__init__.py文件,让Python将该目录识别为合法的Python包。
方法2:手动添加模块路径
在ChzzkRun.py的开头添加代码,将自身所在目录加入搜索路径:
import sys import os sys.path.append(os.path.dirname(os.path.abspath(__file__))) import api
这种方式可以确保无论从哪个位置导入ChzzkRun,都能找到同目录下的api.py。
方法3:使用绝对导入
根据项目结构,用完整的包路径导入api,假设ChzzkChatLog是根目录下的包,修改ChzzkRun.py中的导入语句:
from ChzzkChatLog import api
这种方式默认满足main.py运行时的路径要求,无需额外配置。
内容的提问来源于stack exchange,提问作者백조롱이
相关产品推荐
相关产品推荐

