关于在商业代码中导入GPL许可的Python库的问题
我们正在评估几个用于图形操作的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 个回答
一些建议:
- 寻求专业的法律建议。
- 联系这些库的作者。问他们以下问题:
- 他们对你在应用中使用他们的软件有什么看法;
- 他们是否愿意和你签订商业协议,用于你的应用;
- 还有没有其他方式可以和你合作。
我不是法律专家,但我可以简单说说:
自由软件基金会一直认为,如果你的软件和一个受GPL(通用公共许可证)保护的库链接在一起,那么你的软件就算是这个库的衍生作品,因此也需要遵循GPL的规定(这也是LGPL(较宽松的GPL)许可证的主要区别)。我不太清楚在不同地区的法律判例是什么样的,但如果你不想冒着可能需要打官司的风险(即使最后赢了,也会产生费用和负面影响),那么如果你不想公开你的代码源文件,最好还是避免链接到GPL库(包括动态链接)。
我不是法律专家,但:
现在,igraph库是GPL许可证的。我想问的是:我可以在我的商业Python脚本中导入igraph并使用它吗?
可以的。你可以编写商业软件,并在GPL下发布它。GPL并不禁止商业行为。它甚至明确表示你可以随意出售你的软件。
更具体地说,简单地导入一个GPL的Python模块,会不会让我商业代码有被公开的风险?
不会。你不需要公开任何东西。你甚至不需要分发任何东西。
如果你将你的程序分发给某个人,你必须给(仅限于这个人)源代码,并且要允许他们在同样的许可证下修改和分发。
在GPL下分发东西或者在你的代码中使用GPL库,并不意味着你必须创建一个网站,把你的程序放给全世界的人使用。