Pacchetti Python: importati per classe, non per file
Domanda
Supponiamo che io abbia la seguente struttura di file:
app/
app.py
controllers/
__init__.py
project.py
plugin.py
Se app/controllers/project.py definisce una classe Project, app.py lo importerebbe in questo modo:
from app.controllers.project import Project
Mi piacerebbe semplicemente poter fare:
from app.controllers import Project
Come si potrebbe fare?
Soluzione
Devi mettere
from project import Project
In controllers/__init__.py
.
Tieni presente che quando Importazioni assolute diventato quello predefinito (Python 2.7?), dovrai aggiungere un punto prima del nome del modulo (per evitare collisioni con un modello di livello superiore denominato project
), cioè.,
from .project import Project
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow