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

Python跨文件夹导入两模块遇ModuleNotFoundError问题求助

Python模块导入问题解决方案

问题根源

从错误日志能明确看出,问题出在utilities/api.py里的导入语句:import config_reader。当你从main.py导入api时,Python会在**当前运行脚本的目录(即src/)**以及sys.path中的其他路径寻找config_reader模块,而非utilities/目录,因此抛出ModuleNotFoundError。

单独导入config_reader能正常运行,是因为你直接通过from utilities import config_reader指定了模块所在的包,Python可以正确定位到它。

解决方法

方法1:使用相对导入(推荐)

修改utilities/api.py中的导入语句,用相对路径导入同目录的config_reader:

# api.py 中的导入语句替换为
from . import config_reader

这里的.代表当前包(utilities),Python会在当前模块所在的目录下寻找目标模块。

方法2:使用绝对导入

修改utilities/api.py的导入语句,使用完整的包路径:

# api.py 中的导入语句替换为
from utilities import config_reader

同时,在utilities文件夹中创建一个空的__init__.py文件,让Python将utilities识别为合法的Python包。

额外注意事项

如果需要从不同目录运行脚本(比如直接运行test_folder/test.py),可以把src/目录添加到Python的sys.path中,比如在test.py开头添加:

import sys
from pathlib import Path

# 获取src目录的绝对路径
src_path = Path(__file__).parent.parent.resolve()
sys.path.append(str(src_path))

这样无论从哪个目录运行脚本,Python都能找到utilities包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 20:22:43