导入错误:尝试超出顶级包的相对导入

1 投票
1 回答
43 浏览
提问于 2025-04-11 23:45

我有一个这样的文件夹:

draft
    model
        a.py
    package
        b.py

我想通过这段代码 from ..model import a 把 a.py 里的一个函数导入到 b.py 中。
但是我遇到了一个错误,提示是:
ImportError: attempted relative import with no known parent package

我尝试了这个问题的第一个回答:这个链接
用命令 python -m package.b 来运行。
但又出现了另一个错误:
ImportError: attempted relative import beyond top-level package

我还尝试在 model 和 package 以及 draft 文件夹里添加 __init__.py 文件。
可是还是出现了同样的错误。

我知道有一种解决办法是:

import sys
sys.path.append(f'{source_path}/draft/model')

但是当我把这个代码移到另一台电脑上时,源路径必须更改。如果我忘记改的话就可能会出错。

有没有人能帮帮我?

1 个回答

暂无回答

撰写回答