Python applications will often use packages and modules that don't come as part of the standard library. Applications will sometimes need a specific version of a library. It may not be possible for one Python installation to meet the requirements of every application. The solution for this problem is to create a virtual environment, a self-contained directory tree that contains a Python installation for a particular version of Python, plus a number of additional packages. You can setup as many Python programming environments as you would like.