[GIS] How to use py2exe with the OSGeo4W Python installation

osgeopy2exepython

I have a default Python installation in c:\Python27. I have also installed Python through the OSGeo4W installer, which has created a "sandboxed" Python installation with all the geospatial bindings I need. Now, I need to package a script using py2exe, but I can't figure out how to install or configure py2exe to work with the OSGeo4W installation. I have configured OSGeo4W to install external packages with pip, but py2exe doesn't seem to install with pip. If I try to use the downloaded installer, it only finds the system install in the registry. Any ideas how to get it working?

Best Answer

I've had better luck with pyinstaller than py2exe. It pretty much works out of the box for me with o4w python (you may need to install the optional python-win32 package). Follow the install instructions, and run the Build step. I didn't need to get into manually altering the spec file or even using options (other than --onefile for end user simplicity). Just make sure you run from inside the o4w shell so pyinstaller finds the right python environment. Here is my pyinstaller build batch file. There is only one line that does the real work:

python pyinstaller.py --onefile --out=%path\to\distrib%\myexe-%rev% %path\to\my\file.py%

Not to say py2exe can't work, it's just been so long now I no longer remember where I ran into difficulties with it or what the possible solution routes were.