62

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?

1 Answer 1

106

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
Sign up to request clarification or add additional context in comments.

1 Comment

I wonder if it is possible to exclude at all the ability to call app.controllers.project.Project, in order to avoid having redundant paths to the same object (having both app.controllers.project.Project and app.controllers.Project at this point)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.