I don't think more is better, the risk is it may be generating extra dependencies.
For me it just makes it harder to see what is going on.
Most of those modules I know nothing about, but things like both protobuf and protobuf_cpp seem strange.
This case is way too big for me to guess what is happening. But I'm pretty sure that grpcio will be an issue.
I thought that oauth2client was the solution for oauth2, but looking at those requirements it appears not.
The way to do this is to start with just the imports in your Python code, look at their requirements.txt , recur.
Some don't have requirements.txt , try setup.py
Before you add each one check if it is pure Python, if not look for a recipe (name match may not be exact).
If you don't find a recipe you have a problem, best to find that early.