Unfortunately, there is no official way to handle dependencies in Python projects.
You should use what is best for you and the only way to find it is to try all of them.
If you find this a mess, it is because it is.
Python dependency management is a mess and it seems it will not get better any time soon, unfortunately.
This is because none of them are good enough.
There is a trend towards Poetry right now, and people seem to like it, but there are also people that complain it is not the right tool for some kind of projects. It deserves a try.
I tested PDM but it follows an different approach that Python community is used to and because of this it does not get the same attention as other tools.
Pipenv was a tool with lots of promises that got aggressively marketed as the "official" way to manage Python dependencies but it failed to delivery its promises and it seems the community moved from it.