我想出售一个使用 PyQt4 的 Python 应用程序。Qt PyQt 的商业许可证总共花费数千欧元。我需要购买商业许可证吗?
从“软件包”的角度考虑这个问题,我通过软件中心提供 Ubuntu 软件包。我的软件包将“依赖”现有的 Ubuntu Python 和 PyQt 软件包,那么我是否需要许可 Ubuntu 正在重新分发的、我并不直接使用的东西?
相反,如果我在软件包中包含了 GPL/LGPL Python 库,我的软件包还能保持非自由吗?我不能只提供 GPL 库的源代码吗(如果经过修改)?
如果答案是“您需要商业许可证”,那么您是否知道任何更便宜的替代方案(例如基于版税的付款而不是前期开发费用)?
答案1
我不是律师,这也不是法律建议。这篇文章是关于您有哪些选择,因此它是一种研究工具,旨在与其他研究工具一起使用。即使与其他研究工具结合使用,它也不能代替就您需要正确答案的任何法律问题咨询律师。
Qt 的许可证选项之一(不是介绍)是 LGPL 2.1,它允许您分发专有程序使用 Qt 库只要您遵守 LGPL 2.1 的所有条款。
然而,PyQt 目前只有两种许可选项(除非你与开发者协商其他事宜,但这通常不切实际)。通用公共许可证--那么为了分发你的程序,它必须是免费开源软件;更具体地说,您提供给其他人的任何使用 PyQt 库的程序版本也必须获得 GPL 许可。
对于使用 PyQt 的程序来说,除了 GPL 之外,唯一的选择就是购买商业许可证。正如您所指出的,这通常非常昂贵(尽管对于某些应用程序来说,这是一笔不错的交易)。
如果你的目标是写一篇不兼容 GPL使用 Qt 的 Python 程序,你可能需要考虑皮西德。与 PyQt 一样,PySide 是 Qt 的 Python 绑定,可让您编写使用 Qt 的 Python 程序。与 PyQt 不同的是,PySide 在 LGPL 下可用(就像 Qt 本身一样),因此可以被专有程序使用只要您仔细阅读并遵守 LGPL 的条款。
有时,PyQt 比 PySide 具有显著优势。但通常情况并非如此。关于您可能更喜欢使用哪种工具,也存在主观因素;不同的程序员有不同的偏好。有关更多信息,请参阅PySide 和 PyQt 之间的区别。
答案2
简单来说:如果你对所用软件的许可条款了解不够,无法理解你的建议是否“可以”,您需要与专业人士交谈。如果你想达成交易直接地对于许可证所有者来说,这也是可行的,但您仍然需要了解许可证的工作原理。
和 Eliah 一样,我也不是律师,当你因为听从我的建议而被起诉时,你不能说我没有警告过你。我大体上同意 Eliah 的观点,但我认为在这种情况下,Python 有点不同。
GPL 软件允许您重新分发某些内容,只要您按照相同的许可证提供即可。在这种情况下,您可以重新分发 PyQT。您还将分发您的产品。我个人不明白为什么您不能同时做这两件事,只要您提供所使用的 GPL 内容的源代码即可。您不是将它们集成到 Python 中,您只是在使用它们。
为了进一步说明我所说的内容,如果您在 C 项目中包含一个库并将其编译下来,那么您最终会在二进制文件中得到 GPL 代码,或者您将创建代码链接到的静态库(静态或动态)。如果您重新分发 FSF 受保护的代码,FSF 将要求您通过 GPL 提供您的代码。
发现区别了吗?Python 的基于文本的分发意味着链接非常动态:没有指向 GPL 代码的静态“链接”,并且对 PyQT 的引用可以在不同的环境中替换。您只是使用它的 API。
如果您搜索“python import gpl”,您会发现来自许多非律师人士的许多论点。这不是一个简单的论点,如果真的提起诉讼,您可以肯定,法庭上所有支持自由软件的人都会竭尽全力,以确保树立一个负面先例。
所以再说一遍,你可能没有资格独自做出这个决定。要么找律师谈谈,要么看看这会花多少钱,然后算出直接支付商业许可证会更便宜。
忽视许可将会导致更加昂贵的代价。