The environments are not virtual machines, so no CPU resources are being used and you don’t have to remember to turn then on or off. You can have multiple environments installed at the same time, each with its own version of Python and different sets of modules. When you are done or if you screw the environment up, you can delete the environment and create a new one.
Python virtual environments will allow you to run any version of Python and install any packages you like. To help with these types of issues, python has introduced virtual environments. Removing a package and it’s dependencies without screwing up other packages can be a bit of a nightmare.
It can also be a bit of a hassle when we want to try out a new package, and later find that we no longer need it. Since that version of python is being used by the OS, we really don’t want to mess with it as changing/updating its modules could cause problems with the way OS scripts are running. Where people start running into trouble is when they start using that version of Python for their own work. Most operating systems still come with Python 2.7 by default which is used to run software on the system. I have been using Python for a number of years now and one of the biggest frustrations I have when teaching people how to use it is managing packages and versions of Python itself.