1. Tarek Ziadé
  2. hitchhiker-guide-packaging
  3. Issues
Issue #15 new

Deploying Python applications

Craig McQueen
created an issue

It seems that {{{distutils}}} etc is designed primarily to distribute Python packages. If we want to deploy an application written in Python, is {{{distutils}}} etc a good tool for the job, or should we be looking for a different solution?

I'm mainly thinking of Windows actually. On Linux, Python is almost certainly there already, and you can probably do an RPM or Debian package that brings in any other dependencies such as wxWidgets. But on Windows, there is no such installation system for resolving dependencies and you really want to get it all done in a single {{{setup.exe}}}.

An installer for an application written in Python would need to do some things that are covered by {{{distutils}}}--such as install dependent packages. However, it would be dependent on a Python version that may not be installed (on Windows) and may want to actually install that first. Alternatively, it could use {{{py2exe}}} or similar.

Then, you may also want to install icons, fiddle with the registry. So an MSI or other installation package is probably appropriate. But then how could the MSI ensure the necessary Python interpreter and dependent packages are installed?