关于Python软件包:Python软件包-按类而非文件导入

关于Python软件包:Python软件包-按类而非文件导入

Python packages - import by class, not file

说我有以下文件结构:

1
2
3
4
5
6
app/
  app.py
  controllers/
    __init__.py
    project.py
    plugin.py

如果app / controllers / project.py定义了一个类Project,则app.py会像这样导入它:

1
from app.controllers.project import Project

我只想能够:

1
from app.controllers import Project

怎么做?


你需要放

1
from project import Project

controllers/__init__.py中。

请注意,当"绝对导入"成为默认设置(Python 2.7?)时,您将需要在模块名称前添加一个点(以避免与名为project的顶级模型发生冲突),即,

1
from .project import Project

推荐阅读