Virtual environments allow you to easily create python sandboxes where you can install unique dependencies without interfering your top level Python environment. They also allow you to work on several different projects simultaneously, by creating a virtual environment for each. This gives you the flexibilty to maintain different versions of both python and third party libraries for each project. In many cases the preferred practice is to start with a new venv every time you start a new project.
Maintaining a virtual environment can be painful... pipenv aims to streamline the process. Essentially, pipenv is lightweight virtual environment and package manager rolled into one. So once pipenv is installed, it takes care of managing dependencies. So all you do is activate, install dependencies and code.
Pipenv is loaded with convenience features, one of which is easy integration with github. Since pipenv abstracts away most of the typical virtual environment footprint, leaving just the Pipfile, and Pipfile.lock, if you push your folder out to github, people who download just need only run pipenv install from within the cloned folder to get all of the required libraries -- they are up and running in seconds
If you are a fan of virtual environments, pipenv may be the solution for you since it makes managing your manager less of a thing.