Python项目无法导入src.utills中save_object方法的问题求助
排查Python模块导入问题的实操步骤
1. 先核对基础结构与拼写
首先确认你的项目根目录下的src文件夹里有__init__.py空文件(用来标记这是Python包),同时检查:
utills.py的文件名拼写和导入语句里的utills完全一致(别把utils写成utills,或者反过来)utills.py里确实定义了save_object函数,函数名大小写、拼写和导入时完全匹配(Python大小写敏感)
标准项目结构应该是这样:
你的项目名/ ├── src/ │ ├── __init__.py │ ├── utills.py │ ├── data_ingestion.py │ └── data_transformation.py
2. 检查运行路径是否正确
- 如果在项目根目录运行脚本:用
python src/data_ingestion.py,此时from src.utills import save_object的写法是对的 - 如果在src目录内运行脚本:用
python data_ingestion.py,此时导入语句要改成from utills import save_object(因为两个文件在同一目录下)
3. 排查循环导入问题
确认data_ingestion.py、data_transformation.py、utills.py之间有没有循环引用——比如data_ingestion导入data_transformation,data_transformation导入utills,结果utills又导入data_ingestion,这种循环会直接导致导入报错。
4. 临时调试路径(应急方案)
如果以上都没问题,在data_transformation.py开头加这段代码,查看Python的模块搜索路径,确认项目根目录或src是否在路径里:
import sys print(sys.path)
要是路径里没包含项目根目录,手动添加:
import sys from pathlib import Path # 把项目根目录加到搜索路径里 sys.path.append(str(Path(__file__).parent.parent))
这只是临时解决,更推荐用正确的运行目录来处理。
内容的提问来源于stack exchange,提问作者user3789200
相关产品推荐
相关产品推荐

