我可以在没有PyQt许可证的情况下出售我的PyQt4-app吗?


18

我想出售一个使用PyQt4的Python应用程序。Qt PyQt的商业许可证合计花费数千欧元。我需要购买商业许可证吗?

从“打包”的角度考虑这一点,我将通过软件中心提供Ubuntu软件包。我的软件包将“依赖”现有的Ubuntu Python和PyQt软件包,因此我是否需要许可Ubuntu正在重新分发的内容,而不是直接发行?

相反,如果我的软件包中确实包含了GPL / LGPL Python库,我的软件包将能够保持非自由状态吗?我不能只提供GPL库的源代码(如果已修改)吗?


如果答案是“您需要商业许可证”,那么您是否知道还有其他更便宜的选择(例如基于特许权使用费的付款,而不是预先支付的开发人员费用)?


5
我对此进行了编辑,以明确地谈论Ubuntu,以便我们可以将所有这些烦恼抛诸脑后,并实际上回答人们的问题。我从评论中清除了辩论,并重新提出了问题。
奥利

请注意,这个问题是关于PyQt4的,这两个GNU GPL都可以使用。最新的PyQt5仅是GNU GPLv3。关于代码“链接”的非常恰当的技术区别在此确实适用较少(=不太适合商业包装)。
mario 2014年

Answers:


18

我不是律师,这不是法律建议。这篇文章是关于您有哪些选择的信息,因此它是一个研究工具,旨在与其他研究工具一起使用。即使与其他研究工具结合使用,这也不能代替您需要适当答案的任何法律问题的咨询律师。

Qt(不是 PyQt)的Qt许可选项之一是LGPL 2.1只要您遵守LGPL 2.1的所有条款,就可以分发使用Qt库的专有程序

但是,PyQt当前只有两个许可选项(除非您与开发者协商其他事宜,这通常是不现实的)。它可以在GPL下使用- 然后分发您的程序就必须是免费的开源软件;更具体地说,您提供给他人并使用PyQt库的任何版本的程序,也都必须获得GPL的许可。

对于使用PyQt的程序,GPL的唯一替代方法是支付商业许可证。正如您所指出的,这通常是非常昂贵的(尽管对于某些应用程序来说,这是很多事情)。

如果您的目标是使用Qt在Python中编写不兼容GPL的程序,则可能需要考虑PySide与PyQt一样,PySide是Qt的Python绑定,可让您编写使用Qt的Python程序。与PyQt不同,PySide在LGPL下可用(就像Qt本身一样),因此,只要您仔细阅读并遵守LGPL的条款,即可供专有程序使用

有时,PyQt比PySide具有明显的优势。通常情况并非如此。您可能还喜欢使用主观性元素;不同的程序员有不同的偏好。有关更多信息,请参见PySide和PyQt之间的差异


PyQt4应用程序不必获得GPL许可。PyQt4包含GPL例外,该例外专门允许某些非GPL许可。请参阅:riverbankcomputing.com/software/pyqt/licensegithub.com/Werkov/PyQt4/blob/master/GPL_EXCEPTION.TXT
马里奥

1
@Mario感谢您提供信息!但是,我鼓励您发布一个答案,以进一步解释这个问题,并阐明它如何应用于此问题的OP(谁似乎想分发专有的基于PyQt的软件)。原因如下:riverbankcomputing.com/software/pyqt/license显示PyQt可能是根据GPL(允许两个版本)或商业许可证(两个变体)获得许可的,其中开发人员向Riverbank支付了分发基于PyQt的专有软件的权利。
伊利亚·卡根

@Mario我的答案的关键更正似乎在github.com/Werkov/PyQt4/blob/master/GPL_EXCEPTION.TXT,它提供了更多选项。但是似乎没有人允许将基于PyQt的软件专有化-它们是其他FOSS许可。此外,是否有一个官方页面带有指向该文件的链接,或提供其他信息来说明它确实官方许可文件?(我相信很可能是这样,但是我不确定如何向首席执行官或其他利益相关者证明这一点。)奇怪的是,在Riverbank官方网站的第一个许可页面上没有提到扩展选项。
伊利亚·卡根

我可以让安装程序使用PyQt5 GPL下的应用程序,尚未有正在安装在我自己的条款授权的应用程序?
Niklas R

1
嗨@EliahKagan!那么PySide 2怎么办?
Francesco Pegoraro

5

简而言之:如果您不了解所使用软件的许可条款,不足以解释您所建议的“还可以”,那么您需要与专业人士联系。如果您想直接与许可证所有者寻求协议,也可以,但是您仍然需要了解许可证的工作原理。


像Eliah一样,我也不是律师,当您因遵循我的建议而被起诉时,您不能说我没有警告过您。我通常同意Eliah,但我认为在这种情况下,Python有点不同。

GPL软件允许您重新分发某些东西,只要您在同一许可证下提供它即可。在这种情况下,您将重新分发可以执行的PyQT。您还将分发您的产品。我个人不知道为什么只要将源提供给您正在使用的GPL东西就不能同时做这两个事情。您没有将它们集成到Python中,只是在使用它们。

为了进一步描述我在说什么,如果您在C项目中包含一个库并将其编译下来,您将最终在二进制文件中使用GPL代码,或者创建将代码链接到的静态库(静态或动态)。如果您重新分发受保护的代码,则FSF将要求您通过GPL提供您的代码。

看到不同?Python的基于文本的分发意味着链接是非常动态的:GPL代码没有静态的“链接”,并且可以在不同的环境中替换对PyQT的引用。您只是在使用其API。

如果您搜索“ python import gpl”,则会从许多非律师那里找到双向的许多论点。这不是一个简单的论点,如果确实要提起诉讼,那么可以肯定的是,在板凳上自由软件方面的每个人都将投入一切,以确保树立否定的先例。

再一次,您可能没有资格独自做出这个决定。要么与律师谈谈,要么看看这将花费您多少钱,然后得出结论,仅仅为商业执照付款会更便宜。

忽略许可将花费更多。


2
«您没有将它们集成到Python中,而是在使用它们»如果导入GPLed Python模块,则整个过程将变成GPL。
Andrea Lazzarotto
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.