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

Python相对导入报错:ImportError: attempted relative import with no known parent package

解决Python相对导入报错:ImportError: attempted relative import with no known parent package

问题原因

你用的from .src.folder1.file1 import ClassName是Python的相对导入语法,这种语法仅适用于包内部的模块之间相互导入。但直接运行main.py时,Python会将其视为独立的顶层脚本,而非某个包的子模块,因此无法识别相对路径中的父包,导致报错。

解决方案

有两种可行的解决方式,根据你的需求选择:

方案1:改用绝对导入

直接使用绝对路径导入,因为src目录和main.py处于同一层级,运行main.py时Python会自动将当前目录加入模块搜索路径,修改导入语句为:

from src.folder1.file1 import ClassName

方案2:将项目作为包运行

如果坚持要用相对导入,需要把整个root目录当作Python包来运行:

  • 第一步:在src、folder1、folder2目录下分别创建空的__init__.py文件(用来标记这些目录是Python包);
  • 第二步:切换到root目录的上级目录,执行以下命令运行main.py:
python -m root.main

此时Python会把root识别为一个包,main.py作为包的子模块,相对导入就能正常工作。

内容的提问来源于stack exchange,提问作者Omar El Atyqy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:12:02