Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating a Windows installer for Python + a set of dependencies

I need to create an installer for Windows which should be able to install a specific version of the Python interpreter (2.7) plus a set a dependencies such as ipython, numpy, pandas, etc.

Basically this is the same thing Active State did for their Active Python distribution: a single bundle including interpreter + deps.

Not being a Windows user I'm not sure where to start with this except maybe looking into NSIS (could that be of any help?).

like image 822
Giampaolo Rodolà Avatar asked May 10 '12 13:05

Giampaolo Rodolà


3 Answers

I suggest to use the packaging tool that I also use to build the Python releases, which is in Tools/msi/msi.py. Unpack the additional dependencies on top of the Python source (or an installation), then adjust msi.py to pick up all additional files that you want to package. You should adjust display strings to indicate that this is really a separate Python distribution.

like image 75
Martin v. Löwis Avatar answered Nov 20 '22 20:11

Martin v. Löwis


For Windows there's pynsist. It uses NSIS internally and bundles Python so you don't have to. It comes with useful examples.

Disclaimer: I haven't tried pynsist yet, but will soon.

like image 34
Florian Sesser Avatar answered Nov 20 '22 20:11

Florian Sesser


If you want to package a predetermined version of python and some dependencies, I would suggest, using NSIS and AutoIt.

NSIS can be used to embed other installer, but in the specific case of python modules, some of their installer can't be used in an unattended mode. To bypass this problem, AutoIt can be used to simulate keystrokes.

For more info on embedding other installer in NSIS: http://nsis.sourceforge.net/Embedding_other_installers

AutoIT web site: http://www.autoitscript.com/site/

like image 2
Alexandre Huppe Avatar answered Nov 20 '22 21:11

Alexandre Huppe