You should have a read of this blog post https://www.raspberrypi.org/blog/piwheels/. Should speed things up for you.
When creating a python virtual environment, you are setting up an area with known versions of python and modules for your project. This is used so that different projects with different versions of dependencies don't conflict with each other. When you are in a virtual environment created with Python 3, then the python and pip commands work with the versions of python and pip you have created to run within your virtual environment.
Code: Select all
$ which python $ which pip