OK, it seems that setup.py is the right way - you already have the setup () function, add an install_requires entry, for example:
setup( name="mypkg", version="0.0.1", # etc etc blah blah blabh install_requires=["PIL"], )
It should be! When your users run setup.py install, it will download the PIL and run its own PIL installation procedure.
source share