Python import с верхних уровней
Предположим структура проекта выглядит примерно так:
/project
/engine_
reload.py
changer.py
main.py
/exceptions_
quality_extensions.py
graph_extensions.py
/validators_
resp_validator.py
some_validator.py
/src
1.png
2.png
/tests
Точка входа в папке engine_, main.py. В валидаторах импортируются с папки exceptions_ некоторые нужные типы исключений. В файлы в папке engine_ импортируются валидаторы с validators_, а также файлы из src. Постоянно требуется импорт на уровень выше. Данную проблему я решаю костылём, как я считаю.
sys.path.append(os.path.join(sys.path[0], '..'))
Это хоть и работает всегда но приходится писать в каждом файле в который импортируются файлы из папок на уровень выше. Питон по импорту вниз работает отлично, можно отталкиваться от этого, но структура проекта так себе будет. Вопрос: есть ли альтернатива?
UPDATE: Ну, это и вправду работает(раскидка везде файлов init.py). Проблема в том, что без init пакет не инициализируется. Чуть меньше действий по сравнению с методом в лоб с sys.path, но повторов не избежать. Буду копать дальше...