Windows porting questions

David McNab david at
Sat Feb 15 23:19:03 CET 2003


Up till now I've been happily hacking with Python on Linux.

Cushy environment for programmers, especially since users are willing to
take responsibility for ensuring the requisite bits of 3rd
party software are present on their system - graphics toolkits etc. Makes
the release process easy.

But now, I'm looking at releasing some stuff on Windows.

I'm critically aware that the average Windows user expects everything to
install and work straight out of a single EXE file - this is what they're
used to. I've been there myself. If a software author expects Windows
users to install 3rd party code - even if they provide brilliantly clear
directions for how to do this - the average Windows user's eyes glaze
over, and this user goes elsewhere for software.

Also, I'm aware of the Py2EXE program which can generate a turnkey
executable binary from python code. This seems great, but there's a couple
of concerns:

* Does Py2EXE build in all the needed binary modules? For instance, if I
have a graphical toolkit written in C++, with Python bindings (eg FLTK),
is Py2EXE smart enough to link in all the binary modules as well as the
pure Python ones?

* Does it guarantee a single-file turnkey output, or can there be
situations where the generated EXE requires some other software to be
present on the target Windows box?

* Is Py2EXE really the best approach for dumbing down the Windows
installation process? If not, then what other approach would let me make a
hunk of Python code, plus Python and 3rd party modules, easy to install
and run for the average person's computer-illiterate great-aunt?

* And, what's the best cross-platform GUI toolbox for Python programmers.
By 'best', I mean things like:
  - well documented
  - not assuming TCL knowledge
  - doesn't need 95 lines of code or weird abstractions just to open up
    a window
  - approachable and simple enough for newcomers, but more advanced
    features available once the programmer is more up to speed
I've thought of using FLTK, with the pyFLTK bindings, but can all this be
wrapped by Py2EXE?

Sorry to have rambled on somewhat.
All help appreciated.


More information about the Python-list mailing list