Python子目录脚本导入上级模块报错及解决方案咨询
Python模块目录内脚本导入上级包时出现ModuleNotFoundError解决
问题命名
适合搜索的问题标题:Python脚本位于模块目录中导入上级包时触发ModuleNotFoundError
适配当前目录结构的导入方法
针对你的目录结构,提供三种可行方案:
方案1:动态添加项目根目录到sys.path
在test.py开头添加以下代码,手动将项目根目录(MyProject)加入Python的模块搜索路径:
import sys import os # 获取当前脚本的绝对路径,向上回溯两级得到MyProject目录 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import Utils.util if __name__ == '__main__': # Do something
修改后直接运行test.py即可正常导入模块。
方案2:使用相对导入+模块方式运行
利用Python的相对导入特性,修改test.py的导入语句:
from . import util if __name__ == '__main__': # Do something
运行时切换到MyProject目录,执行以下命令:
python -m Utils.test
这种方式符合Python模块化规范,无需手动修改路径。
方案3:设置PYTHONPATH环境变量
将项目根目录添加到PYTHONPATH环境变量中:
- Linux/macOS终端:
export PYTHONPATH=/绝对路径/MyProject - Windows命令提示符:
set PYTHONPATH=C:\绝对路径\MyProject
设置完成后,无论在哪个目录运行test.py,Python都能找到Utils包。
内容的提问来源于stack exchange,提问作者DongKat
相关产品推荐
相关产品推荐

