Python GUI App Distribution: written in wxPython, TKinter or QT

If you're running Ubuntu, PyQt will be installed by default. Most linux distros will have one of PyGtk or PyQt installed by default. WxPython was most likely installed in your Ubuntu box as a dependency for some other package in your system.

If your target market is Linux, you can just create a deb or rpm package and that'll take care of the dependencies for your application.

For Windows and Mac(and even Linux if you're so inclined) you could bundle the python interpreter with your application and its libraries into a native executable format such as .exe, .dmg or .elf using libraries like cx_freeze, py2exe and py2app. Once this is done, your user will not have to install python or any of your libraries.


Tkinter is the only one that's included with Python. wxPython and pyQT need both the wxWindows or QT libraries and the wxPython or pyQT libraries to be installed on the system.

However, Tk does not look very nice. If you're already making the user install Python, you could just as well have them install the libraries too. (Or maybe include an installer or something.)


If the app is going to be cross-platform I would suggest WxWidgets (wxpython). I have used it several times and it has never been a problem.

Nevertheless, you should create different installers for Windows, Mac and Linux. In Linux, use .deb or .rpm to take care of dependencies.

In Windows, I've always used py2exe to create an exe file. Py2exe works by attaching the python interpreter and the needed libraries, in this case wxWidgets.

Check this link for more information: http://www.py2exe.org/