pyenv lets you easily switch between multiple versions of Python
It's like nvm but for Python ;-)
brew install pyenv
How to use it?
Install a specific Python version:
pyenv install 3.7.0
Activate a specific version:
pyenv shell 3.7.0
List all installed versions.
You can find all the commands here.
It automatically creates and manages a virtualenv for your projects, as well as adds/removes packages from your Pipfile as you install/uninstall packages. It also generates the ever-important Pipfile.lock, which is used to produce deterministic builds.
brew install pipenv
Enable shell completion.
How to use it?
Go to your project and create virtualenv.
You can also specify Python version.
pipenv --python 3.7.1
You can create
.python-version file inside your project with a version number, like
3.7.1. Specified Python version will be activated automatically when you enter to the project directory. It will also automatically install the specified version if
pyenv is installed.
If you want to install package, use
pipenv instead of
pipenv install django
It will add a package to
Pipfile file and
Pipfile.lock. If you want to install all packages from
pipenv install command.
If you want to install a package required only for development, add
pipenv install pytest --dev
pipenv can also load environment variables from
.envfile with your variables.
You can scan your dependency graph for known security vulnerabilities:
More information here.