What are coroutines?
Coroutines are functions that can be paused. We define them using the
async def say_something(what): print(what)
But coroutines can't be run directly:
This is my highly opinionated way of developing with Python locally. Use it, don't use it. But you probably know that it's a PITA to manage different projects with different dependencies targeting different Python versions, and there are different ways of installing Python too: