Asking sincerely: With the various tools like pyenv, poetry, virtualenv, venv and the likes, what seems to be different? What seems to be the best practices today for maintaining projects? I would be grateful for insights.
(Full disclosure: I just use conda in ML & for any lightweight work, I defer to venv which seems to be baked in with Python 3. I have never tried hard to wrangle with this conundrum & many folks are happy with choosing something and sticking to it without asking "why")
pyenv, poetry are wrappers and do different things.
You would use pyenv to create a virtual environment. Or venv directly. Or the older virtualenv tool. Stick to pyenv as it is easiest.
You can setup your shell to activate/deactivate automagically for you when you cd into your project directory using something like: https://github.com/direnv/direnv
I would avoid poetry.
Edit: bah, somebody answered already
tl;dr - Setup direnv and pyenv once and foggetaboutit.