Помню, как однажды всё сломал, «обновив» пакет глобально, — и после этого панически избегал диалогов про окружения. Дубли в requirements, разные версии, непонимание «а где я вообще ставлю». Злость на себя сменялась страхом что-то трогать. Оказалось, решение простое: виртуальное окружение изолирует проект, и ломать соседний ты перестаёшь.
Нейтрально: окружение — отдельная папка с собственными установками библиотек этого проекта. Создал `.venv` → теперь `pip/uv` ставят внутрь него, и конфликтов с другими проектами нет. uv это делает быстро ещё и с lock-файлом.
uv venv .venv # создали окружение проекта
source .venv/bin/activate (в контейнере копия)
uv pip install -r requirements.txt
Понимание, что «окружение — это просто изолированная папка», сняло панику навсегда. Реальная работа джуна часто начинается с того, чтобы не ходить приложения по глобальному Python. Один вечер разбора — и вечный источник страха стал рутиной.