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.

Source Distribution (11.7 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page