I have created a Python-based GUI application which has certain dependencies such as the "request" and "psycopg2" modules among others.
I want to create a setup script that will install all such dependencies when run, so that a user can run the GUI application without having any missing package errors.
I did try looking up the distutils module, but am not able to fully understand its usage.
You specify all dependent packages in the 'install_requires' option within your setup.py - that's it. 
If this is not sufficient or good enough (for whatever reason): look into zc.buildout giving your more options installing and configuring external dependencies.
Installing dependencies for Python program