Create a single standalone .exe from a Python program
I have been working on a small windows command line tool that I wanted to distribute it as a single executable file on windows. I tried cx_freeze and py2exe. Both of these tools worked well, but I couldn’t find an easy way to compress make the whole program into a .exe file. py2exe and cx_freeze both create working programs, but there are always some dependent .zip archive or .dll’s somewhere that need to be distributed with it. Pyinstaller, I found, actually compresses everything into a single .exe. This makes a pretty big executable (my small command line utility created a 5MB .exe file), but it’s simple and it works.
To use pyinstaller:
- grab pyinstaller 1.5rc (1.4 doesn’t work with python 2.7). extract the zip file anywhere.
- change directories to the pyinstaller folder you just created.
- Before you create your first executable, you will have to run this once.
- Now, pyinstall needs to scan through your program and create what they call a spec file.
- Now, run this command to generate the executable.
python configure.py
python makespec.py --onefile path\to\program\program.py
python build.py program\program.spec
Once the command has finished, the standalone executable will be available in the program\dist folder inside of pyinstaller.
Instructions for how to do this for a linux executable on ubuntu linux can be found here: http://excid3.com/blog/2009/12/pyinstaller-a-simple-tutorial/. You can find more info on pyinstaller at their website: http://www.pyinstaller.org/.