Just use poetry[1], there isn’t any reason not to. You can create and manage virtualenvs by hand if you’d like, but why do that to yourself?
That being said, I’ve been using Python for 16 years now and for me poetry is pretty close to nirvana. Not perfect, but really good. Handles virtualenv management, locking, dependency specification, etc etc.
Uhh, I’m struggling to think of anything else. It makes requirements.txt based projects feel barbaric and that will make you feel bad working with them?