Virtual Environment for Python Django
In java all libs used can be packed into a war or jar file. The advantage is that you don't need to worry about the environments of the OS.
Python is a pure dynamic language. Without virtual environment, all the python libs need to be installed into system path and shared among all python project. 
Imagine that you are developing a django 1.10 project. You find a demo project. You want to run it on your machine. But it is compatible only with django 1.8. You can not install two version of the same lib in the same machine, so you get stuck.
Virtual environment solves problem like this. 
But of course virtual environment is not perfect. There are python libs like mysql-python which depends on libmysqld. If those libs are used in your project, it cannot be totally independent with the settings in OS. The best practice I think is to use virtual machine combined with docker. IDE like pycharm supports running remotely via docker
I'm currently a novice in web programming. I've been working on this Django project lately, and I've been reading about virtual environments. At the start of my project, I was unable to set up a virtual environment, and so I proceeded with the project without it. My questions are
Whether or not this virtual environment is really necessary?
If I want to make more Django projects in the future, will I need this virtual environment to differentiate the projects since right now I'm running all the commands in the command prompt from my main C: directory?
Does this virtual environment differentiate multiple projects or does it separate each project with respect to the version of Django/Python it's coded with or both? I'm wondering because I currently input commands such as python manage.py runserver (without the virtual environment) in my main C:drive directory. So does that mean I can't do multiple projects at once without a virtual environment for each? Can I still work on multiple projects without a virtual environment? (I've been confused about this especially)
Should I just try to set up a virtual environment for my next project or can I still do it for this current one (I'm halfway through the project already, I've already made models, views, templates, etc.)? 
Any answers to clarify my confusion is greatly appreciated!