Hi David,
You might consider a different approach to this installation problem entirely. Rather than build your own installer, use conda and binstar to create your own "package collection". Conda is BSD and completely open and free. Binstar is a free service and you could replace it with your own conda repository if you wanted to (it's not difficult to make a conda repository --- just a directory of packages and an index file).
The advantage is that users will then be able to easily manage the collection, create environments, and you will be able to more easily update their installation. This works right now. You could also do some work and make it even easier for your users.
What you do:
1) Create conda packages for all libraries that are not already in repositories -- you could also copy the packages into your own repo.
2) Create a meta-package that is your "distribution" (that's all Anaconda is...)
3) Create a binstar account and upload your conda packages and the meta-package to binstar (the binstar command-line client makes this easy).
What users do:
3) conda create -n <your_meta_environment> <your_meta_package_name>
You could even wrap up the steps 1-3 in a simple NSIS installer (I'm sure Ilan could even give you the miniconda installer NSIS source so that you could just make your own installer that effectively does those things). You could also skip the environment creation, but creating the environment would let other meta-packages be installed and share resources without fighting over version numbers for competing packages.
Ilan and I have been at this for a long while now, and we think we've found an approach that should scale with conda and binstar. The nice thing about using Miniconda is that your users now can install packages from many more people than just what you provide as well.
If you have questions feel free to email and ask them to the
anaconda@continuum.io mailing list or the conda mailing list.
Best,
-Travis