Python-Pakete – Import nach Klasse, nicht nach Datei
Frage
Angenommen, ich habe die folgende Dateistruktur:
app/
app.py
controllers/
__init__.py
project.py
plugin.py
Wenn app/controllers/project.py eine Klasse Project definiert, würde app.py sie wie folgt importieren:
from app.controllers.project import Project
Ich möchte einfach Folgendes tun können:
from app.controllers import Project
Wie würde das geschehen?
Lösung
Sie müssen setzen
from project import Project
In controllers/__init__.py
.
Beachten Sie, wann Absolute Importe zum Standard wird (Python 2.7?), sollten Sie vor dem Modulnamen einen Punkt hinzufügen (um Kollisionen mit einem Top-Level-Modell mit dem Namen zu vermeiden). project
), d. h.
from .project import Project
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow