我正在使用python 3.7,遇到以下文件夹结构的相对导入错误“尝试了相对顶级包的相对导入”:
├── app
│ ├── __init__.py
│ ├── services
│ │ └── item_service.py
│ └── views
│ ├── home.py
│ ├── __init__.py
我的目标:将 foo 变量从顶级 _init_.py 导入到 item_service.py 中,使用< / p>
from .. import foo
Pylint尝试执行此操作时会提示错误。
但是,相同的完全导入语句在 home.py 中有效,并且如果我将空的 _init_.py 文件添加到services文件夹中,则导入有效。
所以我的问题是,为什么? python是否要求您的模块位于子包中才能相对导入父包的内容?
答案 0 :(得分:0)
对我来说,它是通过以下方式解决的:
答案 1 :(得分:-2)
解决: 将 init.py 添加到所有涉及的目录。
添加 sys.path.append("...") 在从兄弟目录导入之前。