Python包-按类导入,而不是按文件导入

Python包-按类导入,而不是按文件导入,python,packages,Python,Packages,假设我有以下文件结构: app/ app.py controllers/ __init__.py project.py plugin.py 如果app/controllers/project.py定义了类项目,则app.py将按如下方式导入该类项目: from app.controllers.project import Project 我希望能够做到: from app.controllers import Project 如何做到这一点?您需要 from

假设我有以下文件结构:

app/
  app.py
  controllers/
    __init__.py
    project.py
    plugin.py
如果app/controllers/project.py定义了类项目,则app.py将按如下方式导入该类项目:

from app.controllers.project import Project
我希望能够做到:

from app.controllers import Project
如何做到这一点?

您需要

from project import Project
controllers/\uuuu init\uuuu.py

请注意,当成为默认值(Python 2.7?)时,您将希望在模块名称前添加一个点(以避免与名为
project
的顶级模型发生冲突),即


我想知道是否可以完全排除调用
app.controllers.project.project
,以避免具有指向同一对象的冗余路径(此时同时具有
app.controllers.project.project
app.controllers.project
from .project import Project