Specifying dependencies when you're writing a library is still a mess, because pipenv isn't recommended for libraries. npm works the same way for both apps and libraries.
Yes, I've uses poetry and it's great. I think it and the pyproject.toml standard will become the solutions to all the problems stated above.
Thanks, I'll give it a try. That's still a mess compared to npm, which is a single tool you can use for app and libs, in constrast with easy_install/setup.py/pip/pipenv/poetry/...
The benefit of Poetry is that it is a single tool for apps and libs, like npm.