I second Jeff Triplett (npub1nsp…ahke) here. Virtualenvwrapper to handle the Python venvs and direnv to load/unload variables.
For example, I have ~/Coding/work as a root for all work related projects (so, ~/Coding/work/project-xyz) and have ~/Coding/work/.envrc to set my git username and email address.