Зачем вообще заморачиваться с виртуальными окружениями в Python?
Короче, долго игрался с разными проектами на одном компе и понял, что без виртуальных окружений реально геморрой. Каждый проект просит свои версии библиотек, а если ставить всё глобально, то потом Python начинает жаловаться, ругается на несовместимости, и какие-то проекты ломаются сразу.
Решил попробовать virtualenv — штука простая: создаешь папку с изолированной копией Python, ставишь туда нужные пакеты, и они не мешают остальным проектам. Особенно удобно, если тестируешь разные версии Django или библиотеки, которая внезапно обновилась и всё сломало.
Проверить, что окружение работает — просто: активируешь его в терминале, вводишь pip list, видишь только нужные пакеты. Если выключить — снова глобальные библиотеки видны.
Есть альтернатива — venv, встроенный в Python 3. Создавать проще, командой python -m venv myenv. Мне хватило и его.
Минус — надо каждый раз помнить активировать окружение перед запуском или в IDE настроить. Но зато меньше конфликтов и пакеты не захламляют систему. В итоге, в новых проектах всегда с этим заморачиваюсь.
У кого какие привычки? Просто ставить все пакеты сразу или тоже колдуете с виртуальными окружениями?