Python包 - 按类导入,而非文件
假设我有以下的文件结构:
app/
app.py
controllers/
__init__.py
project.py
plugin.py
如果在 app/controllers/project.py 文件中定义了一个叫 Project 的类,那么在 app.py 文件中可以这样导入它:
from app.controllers.project import Project
我希望能够简单地这样做:
from app.controllers import Project
这该怎么实现呢?
1 个回答
104
你需要把
from project import Project
放在 controllers/__init__.py
这个文件里。
注意,当绝对导入成为默认设置时(大概是Python 2.7版本),你需要在模块名称前加一个点(这样可以避免和顶层模型名为 project
的冲突),也就是说,
from .project import Project