将 'sibling' 模块相互导入的最pythonic方式是什么?

What is the most pythonic way to import 'sibling' modules into one another?

'sibling' 个模块,我的意思是两个子模块存在于父模块中的相同深度。

我正在尝试使用 Flask-Restful 创建一个 Flask 项目,它建议使用此架构构建项目:

myapi/
    __init__.py
    app.py          # this file contains your app and routes
    resources/
        __init__.py
        foo.py      # contains logic for /Foo
        bar.py      # contains logic for /Bar
    common/
        __init__.py
        util.py     # just some common infrastructure

我真的很喜欢这个结构,但我不确定如何将某些东西从 'common' 模块导入到 'resources' 模块中。谁能帮帮我?

common/__init__.py

from myapi.common.utils import A, B

resource/foo.py

from myapi.common import A

您还可以在 __init__.py 中进行相对导入,例如 from .utils import A