Thank you for bringing up poetry—it's a great tool for managing dependencies and virtual environments. Let's see how it compares to the pyenv with pyenv-virtualenv setup:
Poetry: This tool is excellent for handling project dependencies and setting up virtual environments seamlessly. It also simplifies the process of preparing packages for deployment to PyPI, which is great if you're looking to distribute your package. However, poetry does not manage different Python versions. If you need to switch between Python versions across various projects, you would need to use it alongside pyenv.
pyenv with pyenv-virtualenv: This combination focuses on managing multiple Python versions and their respective virtual environments. It's very useful if your projects require different Python versions. The dependency management can be managed via requirements.txt, which, while simpler than poetry's approach, suits many developers needs by keeping everything within one tool ecosystem.
Personally, pyenv with pyenv-virtualenv is my go to solution to manage projects. It allows me to focus on one tool that covers both Python version management and environment isolation, without the additional features of poetry that I might not always need.