I intent to start learning desktop gui programming, so I've been looking to Python and it's Tkinter, PyGTK and PyGame. But I want to make proprietary software, so I'm concerned because of the licences (PyGTK and PyGame are LGPL, I don't know about Tkinter).

That said my questions are:

  1. If I create a desktop application using Tkinter, PyGTK or PyGame does my app have to be open source?

  2. If it has to be open source, can you suggest me another toolkit - that it's free (as in "no cost") - so that I can create proprietary software?

  • In theory: Yes, you can produce commercial/propietary applications. Perhaps many other libraries do require being distributed as opensource, but not these you mentioned. In practice: It is still Python and compiling .pyc will not protect you from reverse engineering. So Python is not quite good for propietary desktop applications (it is GREAT, and I use it, for opensource desktop applications or propietary backends). – Luis Masuelli Mar 2 '16 at 17:40

[ this is not legal advice, also I am not a lawyer, if you want a specific legal interpretation, please consult a lawyer ]

It seems tkinter is licensed under the BSD license, so should be OK for your purpose.

As for LGPL, that's explicitly been written to allow inclusion in commercial software. However, I think you still need to provide either the source code of the (LGPL) libraries you used, or provide a link from where the user can download the libraries.

As for "is python suitable", it is one of those "it depends" answers. You'll by necessity have to provide either the source code or the .pyc files. I believe turning the latter back into editable source is trivial. You may need to include license terms forbidding redistribution, since it's highly likely that any defensive measure you take to prevent it can be trivially reversed (by the simple fact that the source code is either provided or trivial to get).


In general, the output of a GPL or LGPL program is not covered by the license unless it includes source code from the program itself. Some compilers do this.

When that happens, generally an exclusion will be included that allows the output of the compiler to be consumed in any way the user sees fit.

  • If the frameworks and libraries from the question were GPL, the program would be covered by the GPL (as a derived work). It's not exactly the same case as the output of a compiler. However, if these frameworks are LGPL (or a similar license), then the resulting program need not be GPL. – Andres F. Mar 2 '16 at 18:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.