views:

2271

answers:

2

Say I have the following file structure:

app/
  app.py
  controllers/
    __init__.py
    project.py
    plugin.py

If app/controllers/project.py defines a class Project, app.py would import it like this:

from app.controllers.project import Project

I'd like to just be able to do:

from app.controllers import Project

How would this be done?

A: 

In controllers/init.py, do like so:

import project
Project = project.Project

This will make controllers.Project a pointer to controllers.project.Project.

Bill Williams
+16  A: 

You need to put

from project import Project

in controllers/__init__.py.

Note that when Absolute imports become the default (Python 2.7?), you will want to add a dot before the module name (to avoid collisions with a top-level model named project), i.e.,

from .project import Project
dF