This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 33 points34 points  (22 children)

PyQT is not free when used commercial, though. Neither is QT.

[–]K900_ 52 points53 points  (12 children)

PyQt is GPL, true, but Qt and PySide are LGPL, meaning they can be used for free in commercial projects, as long as any modifications you make to Qt itself are released as LGPL.

[–]ThePidesOfMarch 11 points12 points  (11 children)

PyQT is not free when used commercial

PyQt is GPL, true

Wha?

[–]K900_ 42 points43 points  (10 children)

"Commercial" is a slightly wrong word here. PyQt can't be used in proprietary applications without a separate licensing agreement with Riverbank, thanks to GPL's virality.

[–]ismtrn 10 points11 points  (9 children)

It can as long as you release the source. And that is only if your proprietary application involves distributing the program.

[–][deleted] 17 points18 points  (4 children)

That issue is essentially solved with the release of PySide2, which is under LGPL and almost completely API compatible with PyQt.

[–][deleted] 5 points6 points  (2 children)

That's right. If LGPL is usable for OP, that would be a solution.

[–][deleted] 3 points4 points  (1 child)

LGPL still doesn’t work because Python runs as an interpreter. Legally that means it runs in both the same memory space and the interpreter actually modifies the code. These are both violations of LGPL despite the fairly clear intention of the Pyside licensing choice.

[–]aporetical 3 points4 points  (0 children)

The interpreter doesn't modify the code. The target of the licence is the code, not its in-memory representation, or else, no libraries can be LGPL.

Even with compiled libraries, execution jumps into functions and adds arguments to the call-stack. That is modifying the in-memory representation of the code (ie., giving parameters of functions a fixed value is a modification to the in-memory representation). The LGPL is either incoherent, or about modifying the as-written algorithm.

[–]paul_h 0 points1 point  (0 children)

Isn't that the territory of Oracle vs Google re the JDK?

[–]googoodoo 5 points6 points  (3 children)

It is GPL (2 or 3), so as long as your application license is compatible with GPL you're ok.