许可证

Matplotlib只使用与BSD兼容的代码。如果您从另一个项目引入代码,请确保它具有PSF、BSD、MIT或兼容的许可证(请参见开源计划 licenses page 有关各个许可证的详细信息)。如果没有,你可以考虑联系作者并要求他们重新授权。GPL和LGPL代码在主代码库中是不可接受的,尽管我们正在考虑通过一个单独的通道(可能是工具箱)分发L/GPL代码的另一种方法。如果包含代码,请确保在许可证目录中包含该代码的许可证副本(如果该代码的许可证要求您随它一起分发许可证)。Matplotlib工具包(例如basemap)中可以接受与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、enthown工具套件和python本身都是在BSD兼容的许可下分发的。