Using InnoSetup to create an installer
The following shows a sample InnoSetup script to create an installer for the sample wxPython application shown on the py2exe page.
What Objects are Involved
You will need the following
* py2exe
* InnoSetup I use the QuickStart package as it includes the ISTools which has a nice wizard to help you get going in creating the script you need to create.
Process Overview
Freeze your application using e.g. py2exe and then create and run the InnoSetup installer script, a sample is shown below.
Special Concerns
I use InnoSetup version 5.2.3 with ISTool version 5.2.1, have not yet tried the newer version which is supporting Unicode.
Code Sample
Following is the script to create an installer for the little sample application shown on the py2exe page. The script should be pretty easy to understand. Should a command not be clear please check the help included with InnoSetup.
The script assumes the following folder structure.
application work folder
- setup.py
- samplewx.py
- dist folder
- iss-installer folder
- samplewx.iss
output folder will contain the installer exe after you compile it with InnoSetup
1 ; Script generated by the Inno Setup Script Wizard.
2 ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
3
4 ; then did a few changes to make maintenance, move to other folder easier
5 ;
6 ; define the path to your work folder
7 #define BaseFolder "C:\Dev\aaTests\py2exe\simpleWx"
8
9 ; get version information from the exe
10 #define ExeName BaseFolder+"\dist\simplewx.exe"
11 #define AppVersionNo GetFileVersion(ExeName)
12 #define AppMajorVersionIdx Pos(".", AppVersionNo)
13 #define AppMinorVersionTemp Copy(AppVersionNo, AppMajorVersionIdx +1)
14 #define AppMajorVersionNo Copy(AppVersionNo, 1, AppMajorVersionIdx -1)
15 #define AppMinorVersionNo Copy(AppMinorVersionTemp, 1, Pos(".", AppMinorVersionTemp)-1)
16
17 ; define some more stuff, mainly to just keep it all at the beginning
18 #define MyAppName "My Program"
19 #define MyAppPublisher "My Company, Inc."
20 #define MyAppURL "http://www.example.com/"
21 #define MyAppSupportURL "http://www.example.com/support"
22 #define MyAppUpdatesURL "http://www.example.com/downloads"
23
24 #define MyAppExeName "simplewx.exe"
25
26 #define OutputFileName "setup-simplewx"
27
28
29
30 [Setup]
31 ; NOTE: The value of AppId uniquely identifies this application.
32 ; Do not use the same AppId value in installers for other applications.
33 ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
34 AppId={{451B698D-E97F-444E-9FA9-B7180E450563}
35 AppName={#MyAppName}
36 AppVersion={#AppVersionNo}
37 AppVerName={#MyAppName} version {#AppMajorVersionNo}.{#AppMinorVersionNo}
38 AppPublisher={#MyAppPublisher}
39 AppPublisherURL={#MyAppURL}
40 AppSupportURL={#MyAppSupportURL}
41 AppUpdatesURL={#MyAppUpdatesURL}
42 ; following should probably be something like "{pf}\yourappname" for a real application
43 DefaultDirName=c:\temp\samplewx
44 DefaultGroupName=simplewx - py2exe package sample
45 AllowNoIcons=yes
46
47 OutputBaseFilename={#OutputFileName}_{#AppVersionNo}
48
49 ; bzip/9 is better by about 400KB over zip/9 and lzma is even better
50 Compression=lzma/ultra
51 ; following would reduce size a bit more
52 ;SolidCompression=yes
53
54 [Languages]
55 Name: english; MessagesFile: compiler:Default.isl
56
57 [Tasks]
58 Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
59 Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
60
61 [Files]
62 Source: ..\dist\simplewx.exe; DestDir: {app}; Flags: ignoreversion
63 Source: ..\dist\python26.dll; DestDir: {app}; Flags: ignoreversion
64 Source: ..\dist\w9xpopen.exe; DestDir: {app}; Flags: ignoreversion
65 Source: ..\dist\lib\*; DestDir: {app}\lib; Flags: ignoreversion recursesubdirs createallsubdirs
66 Source: ..\dist\Microsoft.VC90.CRT\*; DestDir: {app}\Microsoft.VC90.CRT; Flags: ignoreversion recursesubdirs createallsubdirs
67 ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
68
69 [Icons]
70 Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
71 Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon
72 Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: quicklaunchicon
73
74 [Run]
75 Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent
76
Other wiki pages to check
Comments
Please feel free to provide any feedback on this page either here, on the wxPython-user list or to werner.bruhin at free.fr.