小编Oza*_*ame的帖子

Python 中“尝试相对导入超出顶级包”错误意味着什么?

我正在使用 python 3.7 并遇到相对导入错误“尝试相对导入超出顶级包”,文件夹结构如下:

\n\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 services\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 item_service.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 views\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 home.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的目标:使用以下命令将变量foo从顶层_init_.py导入到item_service.py

\n\n
from .. import foo\n
Run Code Online (Sandbox Code Playgroud)\n\n

Pylint 在尝试此操作时给出错误。

\n\n

但是,相同的导入语句在home.py中有效,如果我将空的_init_.py文件添加到 services 文件夹中,则导入有效。

\n\n

所以我的问题是,为什么?python 是否要求您的模块位于子包中才能相对导入父包的内容?

\n

python python-3.x

7
推荐指数
1
解决办法
9027
查看次数

标签 统计

python ×1

python-3.x ×1