Isolation
With virtual environments, you can isolate both projects and work independently on both simultaneously. All that will be required is a simple command to change the environment, and changes in one environment will be completely independent of other environments.
Dependency Management
Any packages installed in one project environment will not contradict the packages installed in the other environment. Therefore, you can have Tensorflow 2.0 in one environment and Tensorflow 1.0 in the other environment. Being isolated from each other, there will be no dependency clash, and you will be able to work on both without needing to reinstall packages each time.
Portability
Now extending the same scenario, consider you complete a project and forget about it. After some time, you face an error that needs to be corrected. However, it has been so long that you have forgotten about the dependencies and exact versions of packages that were used during project development.
Python virtual environments can help solve such problems as each environment can be frozen and all dependencies can be saved. Therefore, during or after development, it becomes easier to share code seamlessly. All that needs to be done is share a requirements file that limits setting up a project to a single command. Therefore, reproducing an environment is easier on any development machine.