Ubuntu – sell the PyQt4-app without having a PyQt license


I would like to sell a Python application that uses PyQt4. The commercial licenses for Qt PyQt cost thousands of Euros together. Do I need to buy a commercial license?

Consider this from a "packaged" point of view where I'm providing an Ubuntu package through the Software Center. My package would "depend" on existing Ubuntu Python and PyQt packages so would I need to license something that Ubuntu is redistributing, that I am not directly?

Conversely, if I did include a GPL/LGPL Python library in my package would my package be able to remain non-free? Couldn't I just make the source to the GPL libraries available (if modified)?

If the answer is "You need a commercial license", are there any cheaper alternatives you know of (like royalty-based payments instead of up-front developer fees)?

Best Answer

I am not a lawyer and this is not legal advice. This post is about what options you have, so it's a research tool, intended to be used alongside other research tools. Even in combination with other research tools, this is no substitute for consulting an attorney about any legal matter where you need a proper answer.

One of the license options for Qt (not PyQt) is the LGPL 2.1, which allows you to distribute proprietary programs that use the Qt library provided that you abide by all the terms of the LGPL 2.1.

PyQt, however, currently only has two licensing options (unless you negotiate something else with its developers, which would not ordinarily be practical). It is available under the GPL--then to distribute your program it would have to be free open source software; more specifically, any version of your program that you offer to others and that uses the PyQt library would have to be licensed under the GPL as well.

The only alternative to the GPL, for a program that uses PyQt, is to pay for a commercial license. As you indicated, this is often prohibitively expensive (though for some applications it's a good deal).

If your goal is to write a GPL-incompatible program in Python that uses Qt, you may want to consider PySide. Like PyQt, PySide is a Python binding for Qt, that lets you write Python programs that use Qt. Unlike PyQt, PySide is available under the LGPL (like Qt itself), and thus can be used by proprietary programs provided that you carefully read and abide by the terms of the LGPL.

Sometimes, PyQt has significant advantages over PySide. Often, it does not. There is also an element of subjectivity regarding which you may prefer to use; different programmers have different preferences. For more information, see Differences Between PySide and PyQt.