Paquetes de Python: importar por clase, no por archivo
Pregunta
Digamos que tengo la siguiente estructura de archivos:
app/
app.py
controllers/
__init__.py
project.py
plugin.py
Si app/controllers/project.py define una clase Proyecto, app.py la importaría así:
from app.controllers.project import Project
Me gustaría poder hacer:
from app.controllers import Project
¿Cómo se haría esto?
Solución
necesitas poner
from project import Project
en controllers/__init__.py
.
Tenga en cuenta que cuando Importaciones absolutas se convierte en el valor predeterminado (¿Python 2.7?), querrás agregar un punto antes del nombre del módulo (para evitar colisiones con un modelo de nivel superior llamado project
), es decir.,
from .project import Project
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow