Одна из глобальных проблем при разработке и выкатке на бой приложений - это работа с зависимостями и средами. Вы любите Windows или Ubuntu, а приложения пишете под Debian или наоборот. Может быть вам необходимо использовать библиотеку конкретной версии. Чтобы приложение вело себя предсказуемо у вас на машине и на боевом сервере придумано большое количество инструментов по виртуализации / контейнеризации, но сегодня остановимся на виртуальных окружениях. Собрал небольшую памятку по установке и азам работы с ними. UPD: У меня стоит Ubuntu, все указанное ниже проверялось на этой системе. Думаю с небольшими изменениями будет актуально для Linux систем. Виртуальное окружение. Немного повторюсь, зачем нам виртуальные окружения? Если коротко, они помогают управлять зависимостями и разграничить проекты, которые требуют разные версии библиотек. Если чуть подлиннее: предположим у вас несколько проектов: два из них передовые, они постоянно рефакторятся и поддерживаются в актуальном состоянии, а