We use Django heavily and we have all the requirements in requirements.txt and we do pip install on it.
Lot of times, some requirements are not installed properly and we have to do pip install when we see an error message for particular package.
The issue we are facing is whenever we run `python manage.py migrate` after cloning the repo/pulling the repo, it takes around 30-50 mins.
Are you collapsing your migrations?
Unless you need to maintain multiple production environments with different versions of your software you should be doing so with some regularity.