Well, as far as I know there are many different pieces of advice on how to do it.
Here are 2 approaches that may help you distribute your app
I/
. include all dependencies in my project directory structure
. manipulate the sys.path to make sure that the app is always looking in my dir structure before looking into the system available modules
(Disclaimer: this solution might not work if C libs are involved)
II/
Another approach is using a tool like EasyInstall and eggs. This solution might be a bit more complex, but it will offer you a lot of freedom on how to configure your app and its dependencies (plus it will work with C dependencies).
./alex