We have the following:
$ wc -l requirements.txt
118 requirements.txt
And every module in it is locked to a particular version:
alembic==0.8.8
amqp==2.2.2
anyjson==0.3.3
azure-storage==0.36.0
backports.shutil-get-terminal-size==1.0.0
billiard==3.5.0.2
etc...
I don't really understand the "Dependencies" thing (Or the difference between dev dependencies/transitive dependencies)- we literally list every single module in our environment, and its version - It's not clear to me what other dependencies there could be in a python development environment.
I do note we have three requirements.txt files, a requirements.txt, requirements-test.txt, and a requirements-dev.txt. So, presumably there is a need for different requirements that you've identified that I don't understand. So there's that.