Can I sell my 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)?


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.


Simply put: If you don't understand the terms of the licenses of the software you're using enough to interpret if what you're suggesting "is okay", you need to talk to a professional who does. If you want to seek a deal directly with the license owners, that works too but you'll still need to understand how licensing works.


Like Eliah, I'm also not a lawyer and when you're sued for following my advice, you can't say I didn't warn you. I generally agree with Eliah but I think in this case, Python is a bit different.

GPL software allows you to redistribute something as long as you provide it under the same license. In this case you would be redistributing PyQT which you can do. You'd also be distributing your product. I personally don't see why you can't do both as long as you make the source available for the GPL things you're using. You aren't integrating them into your Python, you're just using them.

To further describe what I'm talking about, if you included a library in a C project and compiled it down, you'd end up either the GPL code in your binary or you'd be creating static libraries that your code linked to (statically or dynamically). The FSF will demand you make your code available by GPL if you redistribute their protected code.

See the difference? Python's text-based distribution means the linking is pretty dynamic: There aren't static "links" to GPL code and the reference to PyQT could be substituted in a different environment. You are just using its API.

If you search for "python import gpl" you will find many, many arguments in both directions from many, many non-lawyers. This isn't a simple argument and if it did come to a lawsuit, you can be damned sure everybody on the free software side of the bench would be throwing everything at it to make sure a negative precedent was set.

So once again, you're probably not qualified to make this decision alone. Either talk to a lawyer or look at how much that would cost you and work out that it'll be cheaper just to pay for the commercial licenses.

Ignoring licensing will work out much more expensive.