Using NSIS to create an auto installer


NSIS (Nullsoft Scriptable Install System) is a professional open source system to create Windows installers. You can download NSIS from the main website HERE.

The Code Explained:

You will want to create a new text file with the nsi extension. The follwing is a breakdown of the script.

Here we want to include code to check if we are on x64 or x32


!include "x64.nsh"
!include "LogicLib.nsh"

Here we want to name our script and exe file


Name PythonInstaller
OutFile PythonInstaller

Lets setup the stype and permission level needed


XPStyle on
RequestExecutionLevel admin
ShowInstDetails show

Lets define our Section


Section "Install Python 2.7.6"
    InitPluginsDir
    IfFileExists C:\python27\python.exe WeAreGood WeAreBad
    WeAreGood:
        DetailPrint "Already Installed: Skipping Python..."
        Goto Finished
    WeAreBad:
      ${If} ${RunningX64}
          NSISdl::download "http://legacy.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi" $PLUGINSDIR\python.msi
      ${Else}
          NSISdl::download "http://legacy.python.org/ftp/python/2.7.6/python-2.7.6.msi" $PLUGINSDIR\python.msi
      ${EndIf}
      DetailPrint "Installing Python"
      nsExec::ExecToLog 'msiexec /i "$PLUGINSDIR\python.msi" /passive /quiet /norestart TARGETDIR=C:\Python27'
      Pop $0
      ${If} $0 != 0
          About "Failed to install Python: $0"
      ${EndIf}
    Finished:
SectionEnd

Compiling the nsi:

All that is left is to right click on the file and choose “Compile NSIS Script”

The Results:

You now have a script that will check if Python is install, if not it will download and then do a silent install.

Your Welcome!