Roman Kitaev,
>> подсвечивает работающий код
Это значит, что тот, который подсвечен как якобы ошибка -- работает, то есть на первом скриншоте.
>> не подсвечивает неработающий
Это значит, что тот, который не подсвечен как ошибка -- не работает, то есть на втором скриншоте.
Max Payne, у тебя в том комменте тесты нормально импортируют модули из апп, это твой reloader.py не может импортировать модели, потому что надо писать from . import models или import models, а то что красным подчеркнуто должно пропасть после того как ты app отметишь как source root
Это сработало только внутри app, если я пытаюсь импортировать из app в tests, который лежит рядом с app - не работает. То есть
from ..app import reloader
проходит хорошо, но дальше
test_reloader.py:7: in <module>
from ..app import reloader
../app/reloader.py:9: in <module>
from app import models
E ModuleNotFoundError: No module named 'app'
все зависит от того, что и откуда вы запускаете
если вы выполняете start.py и в нем импортируете app.py, который в той же директории, вам не нужен относительный импорт, достаточно import app. Весь отсчет путей ведется от файла, который был запущен.
Главный файл приложения, находящийся в модуле - не самая хорошая идея
Однозначно. Модули призваны компоновать и расширять функциональность.
И все импорты сразу станут тривиальны.
Учтите, кстати, что импорт - выполнение всего модуля