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

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

问题排查与解决方案

报错原因

你用相对导入from . import y时,Python需要把first识别为一个包,但如果直接在first目录下运行python x.py,Python会把x.py当成独立的顶层脚本,而非某个包的子模块,自然找不到所谓的“父包”,所以抛出ImportError。

解决方法

方法1:以包的形式运行脚本

  1. 在first目录下创建空的__init__.py文件(Python 3.3+支持无此文件的命名空间包,但显式创建能更明确标识这是一个包)
  2. 切换到root目录,执行以下命令运行脚本:
    python -m first.x
    
    -m参数会让Python把first当作包处理,相对导入就能正常识别y模块。

方法2:改用绝对导入

如果不想以包的方式运行,修改x.py的导入语句为:

# x.py
import y

然后直接在first目录下运行python x.py即可。这种方式是把first目录加入Python搜索路径,将y.py当作顶层模块导入,适合简单场景。

方法3:手动添加路径到sys.path(仅临时测试用)

在x.py开头添加以下代码,把root目录加入Python的模块搜索路径:

# x.py
import sys
from pathlib import Path
sys.path.append(str(Path(__file__).parent.parent))

from first import y

这种方式不够规范,容易引发路径问题,不推荐长期使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:24:21