Virtual environments, implemented by the library virtualenv and venv (added to Python standard library in Python 3.3 via PEP 405), separate project dependencies, such as the Django library code, from your code projects. For example, if you have three projects, one that uses Django 1.7, another that uses Django 2.0 and another project that does not use Django at all, you will have three virtualenvs that each contain those dependencies separated from each other.
Virtualenv provides dependency isolation for Python projects. A virtualenv creates a separate copy of the Python installation that is clean of existing code libraries and provides a directory for new application dependencies on a per-project basis. A programmer can technically use a virtualenv for many projects at once but that is not consider to be a good practice.