Some packages depend on a specific version of python, which is why you’ll need a python version manager like
pyenv. Some projects will conflict on specific versions of packages needed, so you’ll need a way to sandbox projects like
pipenv. Here is my setup (indentation represents nesting):
python pip pyenv python(3.6.9) pip pipx pipenv
The top level
pip are from the system, either installed by default or via the default package manager.
pyenv lets us install other versions of
python (and the corresponding
pip uninstall doesn’t cleanly uninstall packages1, I installed
pipx globally first, and then globally install the project manager
pipenv under that. Initialize packages with
pipenv install <package> in a project folder, and you’re good to go.