关于在商业代码中导入GPL许可的Python库的问题

25 投票
6 回答
15201 浏览
提问于 2025-04-15 12:16

我们正在评估几个用于图形操作的Python库。我们试用了'networkx'(http://networkx.lanl.gov/)和'igraph'(http://igraph.sourceforge.net/)。

这两个库都很棒,但因为一些原因,igraph运行得更快——它是libigraph的Python封装,而libigraph是一个非常快速的C语言图形库(使用了LAPACK等技术)。

不过,igraph库是GPL许可证的。我想问的是:我可以在我的商业Python脚本中导入并使用igraph吗?

(这个问题是一般性的,不仅限于igraph。如果答案很明显,我很抱歉——我对许可证还不太了解!)

谢谢,
Raj

编辑:更具体一点,简单地导入一个GPL的Python模块会让我商业代码有可能被公开发布吗?

6 个回答

3

一些建议:

  • 寻求专业的法律建议。
  • 联系这些库的作者。问他们以下问题:
    • 他们对你在应用中使用他们的软件有什么看法;
    • 他们是否愿意和你签订商业协议,用于你的应用;
    • 还有没有其他方式可以和你合作。
32

我不是法律专家,但我可以简单说说:

自由软件基金会一直认为,如果你的软件和一个受GPL(通用公共许可证)保护的库链接在一起,那么你的软件就算是这个库的衍生作品,因此也需要遵循GPL的规定(这也是LGPL(较宽松的GPL)许可证的主要区别)。我不太清楚在不同地区的法律判例是什么样的,但如果你不想冒着可能需要打官司的风险(即使最后赢了,也会产生费用和负面影响),那么如果你不想公开你的代码源文件,最好还是避免链接到GPL库(包括动态链接)。

13

我不是法律专家,但:

现在,igraph库是GPL许可证的。我想问的是:我可以在我的商业Python脚本中导入igraph并使用它吗?

可以的。你可以编写商业软件,并在GPL下发布它。GPL并不禁止商业行为。它甚至明确表示你可以随意出售你的软件。

更具体地说,简单地导入一个GPL的Python模块,会不会让我商业代码有被公开的风险?

不会。你不需要公开任何东西。你甚至不需要分发任何东西。

如果你将你的程序分发给某个人,你必须给(仅限于这个人)源代码,并且要允许他们在同样的许可证下修改和分发。

在GPL下分发东西或者在你的代码中使用GPL库,并不意味着你必须创建一个网站,把你的程序放给全世界的人使用。

撰写回答