Paquets Python-import par Classe, pas par fichier

dis que j'ai la structure de fichier suivante:

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

si app/controllers/project.py définit un projet de classe, app.py importerait comme ceci:

from app.controllers.project import Project

j'aimerais pouvoir faire:

from app.controllers import Project

Comment faire?

45
demandé sur Adam Bellaire 2008-09-05 06:15:33

1 réponses

il faut mettre

from project import Project

dans controllers/__init__.py .

notez que lorsque les importations absolues deviennent la valeur par défaut (Python 2.7?), vous voudrez ajouter un point avant le nom du module( pour éviter les collisions avec un modèle de haut niveau nommé project ), i.e.,

from .project import Project
83
répondu dF. 2016-06-30 16:24:53