Файлы __init__.py необходимы, чтобы Python рассматривал каталоги как содержащие пакеты; это делается для предотвращения каталогов с общим именем, например строки, из непреднамеренного скрытия допустимых модулей, которые появляются позже на пути поиска модуля. В простейшем случае __init__.py может быть просто пустым файлом, но он также может выполнять код инициализации для пакета или устанавливать переменную __all__, описанную ниже.
В зависимости от того, что вы планируете сделать, это хорошее место для импорта общедоступных материалов из модулей вашего пакета, чтобы люди могли просто использовать from yourpackage import whatever вместо того, чтобы использовать from yourpackage.somemodule import whatever.