Как только проект становится сложне, мы часто выносим часть функционала в отдельные модули или пакеты. Именно тогда из ниоткуда появляется __pycache__, причём в случайных местах:
project/│├── mathematics/│ ││ ├── __pycache__/│ ││ ├── arithmetic/│ │ ├── __init__.py│ │ ├── add.py│ │ └── sub.py│ ││ ├── geometry/│ │ ││ │ ├── __pycache__/│ │ ││ │ ├── __init__.py│ │ └── shapes.py│ ││ └── __init__.py│└── calculator.pyРазбираемся, что это за директория, зачем Python свой кэш и почему он нужен на многих «этажах» проекта.
#факты
@zen_of_python