2008-09-05 6 views
42

Digamos que tiene la siguiente estructura de archivos:paquetes de Python - importaciones por clase, archivo no

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

Si app/controllers/project.py define un proyecto de clase, app.py habría importar así:

from app.controllers.project import Project 

me gustaría ser sólo capaz de hacer:

from app.controllers import Project 

¿Cómo hacer esto?

Respuesta

79

Es necesario poner

from project import Project 

en controllers/__init__.py.

Tenga en cuenta que cuando se convierten en el Absolute imports defecto (Python 2.7?), Tendrá que añadir un punto antes del nombre del módulo (para evitar colisiones con un modelo de nivel superior denominada project), es decir,

from .project import Project 
Cuestiones relacionadas