Yes, but it's not a good practice to specify full git url in setup.py, where I would expect to have sheer module name and version constraints if necessary. There is a convention about overriding requirements from setup.py via requirements.txt file, but here the author just decided to note it in a readme file instead to avoid the need to clone his repository manually.
Like for all languages there are a bunch of dependency managers. And everyone you ask will praise the one they use.
In my opinion, setup.py is best approach. I don't want to be forced to use some specific dependency manager. I just want to run setup.py and expect it to take care of dependencies.