【发布时间】:2019-11-18 01:25:59
【问题描述】:
我正在使用 python 3.7 并遇到了一个相对导入错误“尝试相对导入超出顶级包”,其文件夹结构如下:
├── app
│ ├── __init__.py
│ ├── services
│ │ └── item_service.py
│ └── views
│ ├── home.py
│ ├── __init__.py
我的目标: 将变量 foo 从顶层 _init_.py 导入到 item_service.py 使用
from .. import foo
Pylint 在尝试此操作时会出现错误。
但是,home.py 中的导入语句完全相同,如果我将一个空的 _init_.py 文件添加到服务文件夹,则导入工作。 p>
所以我的问题是,为什么? python是否要求你的模块在子包中才能相对导入父包的内容?
【问题讨论】:
-
Pylint 可能会解析包内的代码,但它应该保持在应用程序级别之下。如果只是 pylint,我暂时忽略它。
-
我认为 0 0 是对的。我有一个运行良好的项目,但 pylint 也给出了这个错误。
标签: python python-3.x