[Tutor] experience/opinions with deploying python GUI app to Linux, Win32, and Mac OS X

Alan Gauld alan.gauld at btinternet.com
Thu Nov 13 09:10:48 CET 2008

"greg whittier" <greg at thewhittiers.com> wrote

> Deploying to the Mac seems to be the most difficult from what I've 
> read.

That's probably true in that for a truly native experience you
need to pay a lot of attention to Apple's guidelines and use
some kind of tool to produce the correct bundle of files etc.

> - tkinter -- this is the obvious answer I suppose, but the widget 
> set is
> limited and not pretty (out of the box at least)
> - pygtk -- not easy to deploy on mac?  Non-native looking widgets

Neither is "pretty" IMHO. Tkinter is easy to deploy though.

> - wxpython - complete widget set and native looking, but not sure if 
> it's
> easy to deploy

I'm not aware of any deployment issues beyond getting
all the right files installed.

> - jython/SWT -- I have no experience with this, but everybody has a 
> JVM, so
> deploying should be easy

Of the client GUI options this is probably the easiest, but
also probably the hardest to use.

> - web app running locally -- no experience with this, but everybody 
> has a
> web browser and there are frameworks like django I could use

This could work but has the disadvantage of being limited
in functionality compared to other GUIIs. It will not look like
a native GUI app it will look like a web site. For your project
it is almost certainly adequate however and fairly easy to
deploy. It is almost certainly the most portable in look.
It also has the advantage of being most resource hungry
on the client machine - a web server plus your app plus
a browser.

> - curses -- probably not as pretty as mac/windows users would expect

curses on Windows is a big risk, none of the DOS ports of
curses that I've found have been complete or totally reliable.

Personally, for cross platform I'd tend to go for wxPython.
Users get the look n feel they expect and the functionality is rich.
Deployment is no more difficult that Tkinter/Gtk, Qt or
any other GUI framework so far as I know.

But this is based on very limited real experience. I use
all 3 platforms but porting a personal app for own use
is very different to building something for real-world


Alan Gauld
Author of the Learn to Program web site

More information about the Tutor mailing list