Since you mentioned uv and the topic is virtual environments...
I am using uv and it seems great.
I don't understand the difference between using "python -m venv .venv; source .venv/bin/activate" and creating a venv with uv and then running the same source command. What does uv offer/integrate that's not present already in python venv module?
Got it. I'm just unsure whether I can use the other uv features like pin with it? That feature feels like it was added and the benefits or trade-offs weren't documented. At least I don't see it.
I just take a look at the uv feature list and the feature I wanted most is Python version management. I'm using micromamba to install all interested Python versions (from 3.8 - 3.12) and set tell poetry about the python location.
But like you said, poetry is working so well so I'll wait a little bit longer before jumping the ship.
See this by the author of Rye:
https://lucumr.pocoo.org/2024/8/21/harvest-season/
"Unified" packaging:
https://astral.sh/blog/uv-unified-python-packaging