必须声明标量变量是什么意思_那些 GitHub 所声明的开源协议都是什么意思

小帅b之前精选过几次

不错的 Github 开源项目

于是就有人问了

“这些项目可以直接拿来用吗?”

28e0e27181e1284331e47b68d7bfac04.gif

有些可以直接用

但是在之前还是要注意下

项目中声明的 License

也就是开源协议

当你去 GitHub 创建一个

开源项目的时候

可以看到有这么一个选项

21a5dd1f0963a3650429988660c5eebf.png

这些常见的协议都怎么用的呢?

那么接下里就是

学习 License 的正确姿势

f742ea693500e4511029692777d2d3c0.png
4191ad381a85a1af49d978da6f4490c5.png

总有一些人会认为

开源就是不要钱

直接拿来用就可以了

如果你总是直接复制别人的代码

不管不顾的使用

可能会出问题哦

8c2805c6c0cc638343d0c3b93d2562c6.png

因为有些项目是声明了协议的

不一样的协议有不同的规定

你需要遵守这些协议才能使用

通常

License 里面就详细且严谨的说明了

你对开源的项目代码的使用

是否可以私用?

是否可以商用?

是否需要注明来源?

哪些可以使用等等..

c6a753630f8b1fdf740a1f079c30dbe4.png

有些人会问了

哇靠啊

要是我自己搞一个开源的项目

我怎么知道怎么写 License?

不急

在 opensource.org 里面

就列举了很多协议

选一个就可以了

53843ce38ab12bc11fd2e62ffcdf19ed.png

不过常见的协议也就是

我开头列举的那几个

都是被广为流传且都认可的

89eab35615fd827e3ac937fcb1ce23d3.png

那么

这些常见的协议都各自是什么意思呢

接下来小帅b就跟你说说

Apache License

使用这个协议可以进行商用

你可以对其修改、分发

但是你要声明作者来源和你的修改以及协议

很多大型项目都使用这个协议

比如 tensorflow、puppeteer

MIT License

这是个人用得比较多的协议

因为比较宽松精简

只要声明版权和协议就可以了

可以商用、修改、复制、重新发布等操作

使用这个协议的就有

vue、react

BSD License

这个和 MIT 协议类似

除了声明协议和来源

其它基本操作都可以使用

flask 用的就是这个协议

GNU License

你可以私用也可以商用

但是你必须声明来源

并且需要声明原有的协议

以及

你的代码也必须开源出来

我们很熟悉的 Linux 就是

采用这种协议

现在知道为什么

有那么多免费的 Linux 发行版了吧

就是得益于这个协议

NO License

也就是什么都不声明

但是并不意味着就可以乱来

这比声明了协议还严格

你可以使用、商用

但是你需要声明协议和来源

而且

你不能对代码进行修改、复制、再次发布

不过

你在 GitHub 使用了这个协议

还是可以被别人观看代码,fork 操作

Eclipse License

这个协议允许你商用、复制、修改、再次发布等

需要声明来源和协议

像 java 中的 junit4 就是使用这个协议

以上就是常见的协议

在使用开源项目的时候

需要先看下人家声明的协议

当你使用这些开源项目的时候

如果出现什么问题

原作者是不承担任何责任的

当然

你也不能出去吹牛逼说

我这个项目是谁谁谁(原作者)和你一起开发的

看到这里

有些人可能说

老子就是用了

就是不声明

你吹啊?

5209b022dccc225cd3de85b6d43ef2fe.gif

我只能说

“小傻瓜”

ok

我这里只是列了常见的协议

如果你需要了解更多

可以到这里获取:

https://opensource.org/licenses/alphabetical

那么我们下回见

peace

b62d6657efa156e065ac29515af6c5d5.gif

你学到的

不仅是 Python