@carlton pyenv-virtualenvwrapper is still the glue that holds everything together for me. (pipx globally too)
Then pip-tools to freeze/update things in nice ways using `pip-compile` and the `--upgrade` option (which I was slower to adopt).
When working with containers or devs using multiple dev platforms, I only lock/upgrade from inside of the container to avoid macOS or Windows-only deps breaking things (sadly, a not uncommon problem.)
@carlton I don't recommend poetry or pipenv anymore because of dependency resolver issues that they both create. They are fine for small libraries and I will leave it at that.