【发布时间】:2020-08-31 13:20:41
【问题描述】:
我正在编写一个 python 应用程序并尝试在一个结构中管理代码。
我的目录结构如下:-
package/
A/
__init__.py
base.py
B/
__init__.py
base.py
app.py
__init__.py
所以我在 A/init.py 中有一行写着
from .base import *
那里没问题,但是当我将同一行放入 B/init.py
from .base import *
我收到一个错误
E0402: Attempted relative import beyond top-level package.
这两者不应该是相同的吗?我到底做错了什么?
我使用的是 Python 3.6,我运行应用程序的方式是从终端使用
> python app.py
谢谢
更新: 抱歉,错误来自其他地方。
在 A/base.py 我有
class ClassA():
...
在 B/base.py 我有
from ..A import ClassA
class ClassB(ClassA):
...
错误来自 B/base.py 中的 import 语句
from ..A import ClassA
更新 #2 @JOHN_16 app.py 如下:-
from A import ClassA
from B import ClassB
if __name__ == "__main__":
...
还按照建议更新了目录以包含空的 init.py。
【问题讨论】:
-
想想 Python 处理模块声明的顺序
-
app.py 的内容是什么?
-
@JOHN_16 参考更新#2 thx。任何帮助将不胜感激
标签: python python-3.x