Python项目导入同目录自定义模块报Unresolved Reference如何解决
问题原因
- Python导入模块时会按照
sys.path列表里的路径依次查找目标模块,找不到就会抛出Unresolved reference报错 - 当前报错的核心原因是运行
app.py时,src目录不在Python的模块搜索路径中:- 如果你是在
restapi根目录直接执行python src/app.py,此时Python的当前工作目录是restapi,不会自动扫描src目录下的模块,就会找不到同目录的imageLoader、modelLoader文件 - 如果你用IDE开发,未将
src标记为项目源根,IDE也会识别不到同目录模块,抛出对应报错
- 如果你是在
解决方法
你可以按需选择以下任意一种方案解决:
- 方案1:调整运行工作目录
运行脚本前先切换到src目录再执行启动命令,此时当前目录会自动加入sys.path,可直接识别同目录模块:cd src python app.py - 方案2:代码动态添加搜索路径
在app.py的最开头添加以下代码,将src目录手动加入Python模块搜索路径,后续导入就不会报错:import sys import os sys.path.append(os.path.dirname(os.path.abspath(__file__))) - 方案3:IDE标记源根(适用于PyCharm等IDE)
右键项目中的src目录,选择「将目录标记为 → 源根」,IDE会自动将src加入搜索路径,编辑器报错和运行报错都会消失。 - 方案4:使用模块方式启动+相对导入
先将app.py里的导入语句改为相对导入:
然后在from .imageLoader import Img from .modelLoader import Modelrestapi根目录用-m参数以模块方式启动:python -m src.app
内容的提问来源于stack exchange,提问作者lxg95
相关产品推荐
相关产品推荐

