
Alfonso Morán
PreguntaQué es lo que debe contener el archivo init.py? es un archivo vacío?
David Granados
Lo que dice Luis_Lira está mal en muchos sentidos, al menos desde python 3.3 el init.py no es necesario y menos si va vacío (https://www.python.org/dev/peps/pep-0420/)
Python actualmente hace el namespacing con la misma jerarquía del filesystem, por lo que el init.py vacío no hace nada ni es necesario al menos que, como dice pabloantipan lo uses para inicializar al package creando variables, funciones o haciendo imports por defecto.
Yo por ejemplo lo uso como dice pablo para hacer el import automático de varios models o classes en un package que los contenga distribuidos en diferentes modules, es decir, si tengo un archivo que tiene varios modelos y este crece mucho o se pierde la cohesión entre dichos modelos, los separo en varios modules creo un package y lo inicializo para que haga el import automático de los modules y así es como si siguieran dentro del mismo module para no refactorizar ni romper nada del app que lo estaba utilizando.

Pablo Antipan Quiñenao
Hola alfonso98!
Es un archivo que permite que un modulo sea reconocido como tal. NO necesariamente va vacío, sino que puede contener importaciones, algo como:
from .mymodule.myclass.myfile import MyClass
De este modo, luego importas como: from mymodule import MyClass
De este modo, aunque tengas anidado funciones y clases dentro de la carpeta de mymodule, puedes obviar los puntos.
A su vez, dentro de este archivo puedes dejar comentarios (RECOMENDABLE) y hasta algunos ejemplos de uso (esto NO siempre esa asi, hay diferentes estrategias de testeo)
Saludos :D

Alfonso Morán
Gracias! 😄

Luis Lira
Sí, es un archivo vacío que sirve para que Python reconozca lo módulos.