Skip to main content

distutils extension module - create an installer by InnoSetup.

Project description



  • You can use your customized InnoSetup Script.
  • installer metadata over setup() metadata
  • generate AppId(GUID) from setup() metadata See the innosetup.InnoScript.appid property.
  • bundle exe and com dll and dependent libs and resources
  • bundle msvcr and mfc and their manifest
  • bundle all installed InnoSetup’s language file (If there is no valid [Languages] section.)
  • create windows exe’s shortcut
  • register com_server and service
  • check the Windows version with Python version
  • fix a problem misses some modules (ex.


from distutils.core import setup
import py2exe, innosetup

# All options are same as py2exe options.
    license='PSF or other',
    url='http://www.your.domain/example', # generate AppId from this url
        'py2exe': {
            # `innosetup` gets the `py2exe`'s options.
            'compressed': True,
            'optimize': 2,
            'bundle_files': 3,
        'innosetup': {
            # user defined iss file path or iss string
            'inno_script': innosetup.DEFAULT_ISS, # default is ''
            # bundle msvc files
            'bundle_vcr': True, # default is True
            # zip setup file
            'zip': False, # default is False, bool() or zip file name
            # create shortcut to startup if you want.
            'regist_startup': True, # default is False
        {'modules': ['your_com_server_module'], 'create_exe': False},
    # and other metadata ...

Do the command innosetup. Then you get InnoSetup script file named dist\distutils.iss and the installation file named dist\<name>-<version>.exe.



  • fix a ‘MinVersion’ bug.

0.6.6, 0.6.7

  • update readme and setup script.


  • move download url to github.


  • move repository to github.
  • add a script.


  • change versioning policy (remove build number).
  • add utf-8 bom to .iss file by Jerome Ortais, thanx.
  • pick up COPYING file for [setup]/LicenseFile by Jerome Ortais, thanx.

  • add regist_startup option for create shortcut to startup.

  • fix metadata and unicode by surgo, thanx.
  • set DEFAULT_ISS to empty because Inno Setup 5.3.9 is released.
  • fix a problem that py2exe includes MinWin’s ApiSet Stub DLLs on Windows 7.

  • support bundling tcl files
  • change OutputBaseFilename

  • improve update install support

  • add DEFAULT_ISS, manifest, srcname, srcnames
  • add zip option
  • fix bundle_files=1 option problem (always bundle pythonXX.dll)
  • add DefaultGroupName, InfoBeforeFile, LicenseFile into [Setup] section

  • support service cmdline_style options
  • rewrite codes around iss file

  • improve the InnoSetup instllation path detection
  • add inno_setup_exe option

  • handle py2exe’s command options
  • add bundle_vcr option

  • first release

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date (11.7 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page