This is an example of building a Windows installer for a pygtk application that includes matplotlib and numpy. Requirements ------------ This example needs 7zip in order to work. You can install it for example on Debian-style distributions using: :: sudo apt-get install p7zip Running the Example ------------------- In order to build the example application on Linux you have to run the following two commands in the example directory: :: sh grab_files.sh python -m nsist installer.cfg The first line will download the dependencies, extract them and copy them into the :code:`pynsist_pkgs`-directory. It will then remove the temporary directories used for extraction, but will leave the downloaded archives intact in the example directory. Matplotlib ---------- The example downloads the 32-bit Python 2.7 bindings of Matplotlib 1.4.3 (matplotlib-1.4.3.win32-py2.7.exe). In the :code:`installer.cfg` Matplotlib additionally requires the six, dateutil and pyparsing packages: :: [Include] packages=pygtk numpy matplotlib six dateutil pyparsing Numpy ----- The example downloads the 32-bit Python 2.7 bindings of Numpy 1.9.2 (numpy-1.9.2-win32-superpack-python2.7.exe). PyGTK ----- PyGTK is a bit more complex than the other examples, because the GTK runtime needs to be set up. This needs two things: 1. The pieces of the GTK runtime and its Python bindings. The script ``grab_files.sh`` downloads these, unpacks them, trims out unnecessary pieces, and places them where pynsist will find them. 2. The ``PATH`` environment variable must be modified before we try to import the Python GTK bindings. This is done by the ``extra_preamble`` field in ``installer.cfg``. I referred to the following sources of information to work this out: Bundling pygtk using py2exe: http://faq.pygtk.org/index.py?file=faq21.005.htp&req=show https://web.archive.org/web/20060208162511/http://www.anti-particle.com/py2exe-0.5.shtml Installing pygtk & deps: http://www.pygtk.org/downloads.html (inc links for pygtk, pycairo and pygobject installers) GTK bundles for Windows: http://www.gtk.org/download/win32.php Installer.cfg ------------- The example is customized for 32-bit and Python 2.7. This is expressed in the :code:`installer.cfg`-file like this: :: version=2.7.9 bitness=32 The include section requires pygtk, numpy and matplotlib. In order to satisfy the requirements of Matplotlib the packages six, dateutil, and pyparsing are needed. :: [Include] packages=pygtk numpy matplotlib six dateutil pyparsing