Для каждого отдельного, серьезного, проекта на Python создаётся своё виртуальное окружение. Для чего это нужно? Некоторые версии библиотек работают только с определенными версиями других библиотек, и часто происходит так, что бы запустить один проект, нужны определенные версии одних библиотек, а что бы запустить другой - другие. Что бы каждый раз по новой не удалять и переустанавливать нужные нам версии библиотек и существует виртуальное окружение. Оно создается под каждый проект, а затем наполняется единожды нужными библиотеками...