许可证#

Matplotlib 仅使用 BSD 兼容代码。如果您从另一个项目中引入代码,请确保它具有 PSF、BSD、MIT 或兼容许可证(有关单个许可证的详细信息,请参阅开源计划许可证页面)。如果没有,您可以考虑联系作者并要求他们重新授权。GPL 和 LGPL 代码在主代码库中是不可接受的,尽管我们正在考虑通过单独的渠道(可能是工具包)分发 L/GPL 代码的替代方法。如果您包含代码,请确保在许可证目录中包含该代码许可证的副本(如果代码的许可证要求您随其分发许可证)。Matplotlib 工具包(例如底图)可以接受非 BSD 兼容的许可证,但请确保清楚地说明您正在使用的许可证。

为什么兼容 BSD?#

两种主要的许可证变体是 GPL 风格和 BSD 风格。还有无数其他许可证对代码重用设置了特定限制,但在 GPL 和 BSD 变体中需要考虑一个重要的区别。最著名的,也许是最广泛使用的许可证是 GPL,它除了授予您对源代码的全部权利(包括重新分发)之外,还附带了一项额外的义务。如果您在自己的代码中使用 GPL 代码,或与之链接,您的产品必须在 GPL 兼容许可下发布。即,您需要将源代码提供给其他人,并赋予他们重新分发它的权利。许多最著名和广泛使用的开源项目都是在 GPL 下发布的,包括 linux、gcc、emacs 和 sage。

第二大类是 BSD 风格的许可证(包括 MIT 和 python PSF 许可证)。这些基本上允许你对代码做任何你想做的事情:忽略它,将它包含在你自己的开源项目中,将它包含在你的专有产品中,出售它,等等。python 本身是根据 BSD 兼容许可证发布的,从某种意义上说,引用 PSF 许可证页面:

There is no GPL-like "copyleft" restriction. Distributing
binary-only versions of Python, modified or not, is allowed. There
is no requirement to release any of your source code. You can also
write extension modules for Python and provide them only in binary
form.

在上一段的许可意义上,在 BSD 风格的许可证下发布的著名项目是 BSD 操作系统、python 和 TeX。

早期的 Matplotlib 开发人员选择 BSD 兼容许可证有几个原因。Matplotlib 是一个 python 扩展,我们选择基于 python 许可证(BSD 兼容)的许可证。此外,我们希望吸引尽可能多的用户和开发人员,许多软件公司不会在他们计划分发的软件中使用 GPL 代码,即使是那些高度致力于开源开发的公司,例如enthought,出于合理的担忧,即使用 GPL 会因其病毒性质“感染”他们的代码库。实际上,他们希望保留发布某些专有代码的权利。使用 Matplotlib 的公司和机构通常会做出重大贡献,因为他们拥有完成工作的资源,即使是无聊的工作。两个 Matplotlib 后端(FLTK 和 WX)由私人公司提供。选择许可的最后一个原因是与其他用于科学计算的 python 扩展的兼容性:ipython、numpy、scipy、enthought 工具套件和 python 本身都在 BSD 兼容许可下分发。