Es gibt allerdings große Unterschiede in der Lizensierung: * PyQt ist GPLv3 oder komerziell * PySide2 (python for Qt ) ist LGPLv3 GPLv3 oder komerziell
Deswegen bin ich sehr froh, dass es nun ein offizielles LGPLv3 Binding gibt.
PyQt steht unter der GPLv3, was Entwickler proprietärer Anwendungen, die den Quellcode nicht öffnen wollen, dazu zwingt, eine kommerzielle Lizenz zu erwerben.
Das sehe ich nicht so. Ich kann in von mir erstellte Python-Dateien reinschreiben was ich möchte. Da kann mich keine Lizenz von einem anderen Projekt zu zwingen eine Lizenz zu wählen, die ich nicht möchte. Und eine automatisch abgeleitete API (PyQt) von einem anderen Projekt (Qt), hat sicher keine große Schöpfungshöhe. Aus der Verwendung der API ergeben sich in meinen Augen keine Rechtsansprüche.
Die Rechtslage ist eindeutig. Wenn du mit einem unter GPLv3 stehenden Programm linkst (das ist bei PyQt wohl der Fall, es ist zwar Python, aber man importiert die Module), dann muss das Resultat unter der GPLv3 stehen. Keine Ausnahme. Wer das nicht will, muss eine kommerzielle Lizenz von PyQt kaufen, dann darf auch das Produkt unter einer proprietären Lizenz stehen.
Bei Python wird aber nichts "gelinkt". Das würde alles der Rechner des Benutzer beim Starten des Programms machen. Selbst wenn ich nicht die .py-Dateien zur Verfügung stellen würde, sondern nur den Bytecode, wäre nichts aus der Bibliothek enthalten. Die PyQt Module müsste ich natürlich in ihrer eigenen Lizenz zur Verfügung stellen, aber das berührt nicht meine eigenen Module.
PyQt verwendet Qt so, dass es unter der GPL3 fällt. Python kann dann PyQt nutzen, somit werden deine Programme auch GPL3. Was glaubst du was import macht? Es erweitert deinen Namensraum ob jene GPL3 Funktionen.
Ein Import macht bei mir gar nichts. Python ist keine kompilierte Sprache. Was die Laufzeitumgebung bei dem Endbenutzer macht liegt nicht in meiner Verantwortung. Das mit der Namensraumerweiterung finde ich etwas seltsam, warum sollte das bloße erwähnen von Namen, die in einer API vorkommen, dazu führen, dass ich mein Werk unter deren Lizenz stellen muss? Das ist keine Anschauung die ich teilen kann. Das wird vor allem lustig, wenn man Pyside und PyQt nebeneinander sieht und "obj = QObject()" vollkommen gleich aussehen.
PyQt verwendet Qt so, dass es unter der GPL3 fällt.
Wenn das wahr wäre (und das ganze "linken" passieren würde), wie wäre dann eine proprietäre Variante von PyQt möglich?
Ich würde gerne wissen ob es reicht die komerzielle lizenz zu kaufen (qt) einen wrapper damit zu bauen (pyqt) und dass dann wieder komerziell zu verkaufen. Wenn das so geht kann ich ja auch billigere qt c++ libs verkaufen
Nach PyQt und PySide unterstützt nun also Qt von sich aus Python mit Qt for Python.
Qt for Python ist eigentlich PySide2
https://wiki.qt.io/Qt_for_Python_Tutorial_ClickableButton#Another_example
Und PySlide wurde von Nokia entwickelt
https://www.python-forum.de/viewtopic.php?t=28995
https://wiki.qt.io/PySideSimplicissimus_Module_3_AboutBox
Auch noch zwei inkompatible Lösungen.
PyQt hatte bisher die größte Verbreitung. Und PySide wird nun vom Qt-Hersteller selber weiterentwickelt.
Es gibt allerdings große Unterschiede in der Lizensierung:
* PyQt ist GPLv3 oder komerziell
* PySide2 (python for Qt ) ist LGPLv3 GPLv3 oder komerziell
Deswegen bin ich sehr froh, dass es nun ein offizielles LGPLv3 Binding gibt.
PyQt5 lässt allgemeine Klassen wir QString ebenfalls weg.
Allgemein empfand ich bei meinem kleinen Projekt Qt als sehr durchdacht und intuitiv nutzbar.
Klasse wäre es, wenn es wieder Bindings für die JVM (Scala, Kotlin) geben könnte. Wäre ein Traum!
Die Rechtslage ist eindeutig. Wenn du mit einem unter GPLv3 stehenden Programm linkst (das ist bei PyQt wohl der Fall, es ist zwar Python, aber man importiert die Module), dann muss das Resultat unter der GPLv3 stehen. Keine Ausnahme. Wer das nicht will, muss eine kommerzielle Lizenz von PyQt kaufen, dann darf auch das Produkt unter einer proprietären Lizenz stehen.
Bei Python wird aber nichts "gelinkt". Das würde alles der Rechner des Benutzer beim Starten des Programms machen. Selbst wenn ich nicht die .py-Dateien zur Verfügung stellen würde, sondern nur den Bytecode, wäre nichts aus der Bibliothek enthalten. Die PyQt Module müsste ich natürlich in ihrer eigenen Lizenz zur Verfügung stellen, aber das berührt nicht meine eigenen Module.
PyQt verwendet Qt so, dass es unter der GPL3 fällt.
Python kann dann PyQt nutzen, somit werden deine Programme auch GPL3.
Was glaubst du was import macht? Es erweitert deinen Namensraum ob jene GPL3 Funktionen.
Ein Import macht bei mir gar nichts. Python ist keine kompilierte Sprache. Was die Laufzeitumgebung bei dem Endbenutzer macht liegt nicht in meiner Verantwortung. Das mit der Namensraumerweiterung finde ich etwas seltsam, warum sollte das bloße erwähnen von Namen, die in einer API vorkommen, dazu führen, dass ich mein Werk unter deren Lizenz stellen muss? Das ist keine Anschauung die ich teilen kann. Das wird vor allem lustig, wenn man Pyside und PyQt nebeneinander sieht und "obj = QObject()" vollkommen gleich aussehen.
Wenn das wahr wäre (und das ganze "linken" passieren würde), wie wäre dann eine proprietäre Variante von PyQt möglich?Ich würde gerne wissen ob es reicht die komerzielle lizenz zu kaufen (qt) einen wrapper damit zu bauen (pyqt) und dass dann wieder komerziell zu verkaufen. Wenn das so geht kann ich ja auch billigere qt c++ libs verkaufen