`
Zhongwei_leg
  • 浏览: 552056 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

PyQt VS PySide, GPL VS LGPL

阅读更多

文章转载自 大象笔记

 

http://www.sunzhongwei.com

 

今天在 Python-CN 邮件组里看到讨论 PyQt 和 Nokia PySide 的问题。

PyQt 是商业及 GPL 的版权, 而 PySide 是 LGPL.

 

也就是如果使用 PyQt 做商业应用的话就需要付费, 而使用 Nokia 的 PySide 则不需要。

 

题外话:

自从 Nokia 收购了 Qt, 一直大力推广 Qt。前天发布的最新的 PySide 已经支持 MS Windows,
而且是 LGPL 的。

相信 PySide 未来会比 PyQt 更强大易用。按照 Nokia 的说法是会更加 Pythonic。

PySide is an open source sofware project providing Python bindings for the Qt framework. Qt is a cross-platform application and UI framework, allowing the developers to write applications once and deploy them across many operating systems without rewriting the source code, while Python is a modern, dynamic programming language with a vivid developer community.

Combining the power of Qt and Python, PySide provides the wealth of Qt framework for developers writing software in Python and presents a first-class rapid application development platform purported to be available on all major operating systems.

 

 

// 以下为在网上搜索的结果


LGPL概念

  LGPL 是 GNU Lesser General Public License (GNU 宽通用公共许可证)的缩写形式,旧称 GNULibrary General Public License (GNU 库通用公共许可证),在宽松程度上与 BSD, Apache,XFree86 许可证相似。


  GPL(General Public License)和LGPL( Lesser General Public License)是GNU的两种License。越来越多的自由软件(Free Software)使用GPL作为其授权声明,如果对GPL一点都不了解,有可能在使用自由软件时违反了GPL的授权。如果是个人或不正规的公司倒也无所谓,但如果是有规模的公司,恐怕会有被起诉的风险。


  在使用Log4cpp时我想到了授权的事情,于是有了兴趣对GPL做一下了解。这是必要的,因为公司也维护了一个验证过的自由软件库,里面包含的自由软件除了功能上是可靠的,另外就是一定可以被私有使用的,否则后果很严重。


  Log4cpp最初的版本使用GPL作为授权声明的,在0.2.1版本以后改用更为宽松的 LGPL。LGPL最初是Library GPL的缩写,后来改称作Lesser GPL,即为更宽松的GPL。当一个自由软件使用GPL声明时,该软件的使用者有权重新发布、修改该软件,并得到该软件的源代码;但只要使用者在其程序中使用了该自由软件,或者是使用修改后的软件,那么使用者的程序也必须公布其源代码,同时允许别人发布、修改。也就是说,使用GPL声明下的的自由软件开发出来的新软件也一定是自由软件。


  LGPL是GPL的变种,也是GNU为了得到更多的甚至是商用软件开发商的支持而提出的。与 GPL的最大不同是,可以私有使用LGPL授权的自由软件,开发出来的新软件可以是私有的而不需要是自由软件。所以任何公司在使用自由软件之前应该保证在 LGPL或其它GPL变种的授权下。
编辑本段

Richard Stallman关于GPL和LGPL的论述


  为什么你不应该使用LGPL发布你的下一个库


  GNU计划在使用库时有两个首要的许可证.一个是GNU LGPL(库GPL);另一个是普通的GNU GPL.选择不同的许可有很大的不同:选择LGPL允许在私有程序中使用该库;选择普通的GPL则只允许在自由软件中使用它.


  关于哪一种许可证对指定的库是最好的这一问题实际上是一个策略问题,它取决于实际情况.当前,大多数的GNU库被采用LGPL,这意味着我们只使用着其中的一个策略,而忽略了另一个. 所以现在我们在寻求更多以普通的GPL许可证形式发布的库.


  私有软件开发者有金钱上的优势;自由软件开发者需要相互之间利用各自的优势.对一个库采用普通的GPL对自由软件开发者的优势要大于对私有软件开发者: 他们可以使用的库对于私有软件开发者是不可利用的.


  使用普通的GPL并不是对于所有的库都有好处.在某些情况下更有理由来使用LGPL.最常见的情况就是当一个自由库的特性可以很容易地被私有软件以其他可替代库来实现.在这种情况下,库不能给与自由软件任何特别的优势,因而最好还是为LGPL发布该库.


  这也就是为什么我们为GNU C 库选择LGPL.总之,有很多的其他C库;我们使用GPL发布该库,将迫使私有软件开发者不得不使用其它的库--对他们来说这不成问题,而我们则有了麻烦.


  然而,当一个库所提供的功能是非常独特的时候,如GNU Readline, 情况就大不一样了. Readline库可实现输入编辑和记录交互式程序操作,这在别处通常是不可多得. 在GPL下发布它并限制它只能在自由程序中使用, 这我们的社团是一个重要的促进.至少今天某个应用程序之所以是自由软件,只是因为它必需要用到Readline.


  如果我们收集一些强大的、私有软件中没有相类似东西的、采用GPL的库,它们将提供一系列有用的模块用于新的自由软件的构造. 这对于将来的自由软件开发将是一个显著的优势, 一些项目将为了使用这些库而考虑使软件自由化. 大学的项目是易于被影响的;而且今天,随着某些公司开始考虑使软件自由化, 甚至一些商业项目也会由此受到影响.


  私有软件开发者试图否认自由竞争的重要性, 他们会拼命说服作者不要将库使用GPL来发布. 例如,他们会呼吁利己主义,信誓旦旦地说如果我们让他们在私有软件产品中使用代码,将有“更多的用户”用到该库. 流行是一种诱惑,它使一个库开发者倾向于相信这种观点:社会首先需要的是促进一种库的流行;.


  但是我们不应该听从这种诱惑,因为如果我们联合起来,我们可以做得更好.我们这些自由软件开发者应该相互支持. 通过发布只能为自由软件使用的库,我们可以互相帮助,使彼此的自由软件包优于其它的私有替代品. 整个自由软件运动将会有更多的机会,因为自由软件作为一个整体将会在竞争中表现更佳.


  因为"LGPL(Library GPL)"的称呼传达了关于这一问题的错误观点,我们计划将称呼改为"次级GPL(Lesser GPL)".事实上要更换名称要花一定的时间,但你不必再等--你可以现在就发布应用GPL许可证的库.

 

分享到:
评论

相关推荐

    pyqt:PyQt ve PySide ornekleri

    PyQt遵循GPL和商业许可证,而PySide主要遵循LGPL,这使得PySide在某些情况下更适合开源项目。API上,虽然大部分函数和类名相似,但PySide通常更接近Qt的C++接口,而PyQt则有一些Python化的改进。 现在,让我们看看...

    Python技术的GUI开发方法.docx

    PyQt 和 PySide 之间的主要区别在于它们的许可条款,PyQt 遵循 GPL 和商业许可证,而 PySide 是 LGPL 许可,更适合开源项目。 3. Kivy Kivy 是一个专注于跨平台和触摸输入的 GUI 框架,特别适合开发移动应用和触摸...

    pyside2:Python爱好者的Qt入门手册

    PyQt采用需购买版权的商业及GPL许可,而PySide采用无需购买版权的LGPL许可。 PySide与PyQt有非常兼容的API,因此无需版权的PySide更适合广大Python爱好者的学习。PySide2支持Qt5框架,兼容Python2.7以上版本以及...

    Python的GUI框架PySide的安装配置教程

    PyQt 是商业及 GPL 的版权, 而 PySide 是 LGPL。大意也就是PyQt开发商业软件是要购买授权的,而PySide则不需要。二者代码基本一致,修改下import 基本剩余的代码皆可通用。所以毫不犹豫的选择了PySide。 (二)...

    AnyQt-0.1.0-py3-none-any.whl.zip

    PyQt是由Riverbank Computing开发的,支持GPL和商业许可证,而PySide是Qt公司自己维护的,遵循LGPL许可证。两者都能让Python开发者利用Qt的强大功能,但API细节上存在一些差异。AnyQt库的存在就是为了抽象这些差异,...

    PyQt参考文档.chm

    PyQt类库说明 官方 PyQt is a comprehensive set of Python bindings for the Qt cross-platform GUI/XML/SQL C++ framework from ... There are also official Nokia bindings called PySide available under LGPL.

    Python QT GUI与数据可视化编程.zip

    PyQt是Gpl和商业许可证下提供的,而PySide遵循LGPL,因此对于商业项目,PySide可能是更好的选择。这两个库都提供了对QT的所有功能的全面访问,包括窗口管理、按钮、文本输入框、表格视图、菜单、对话框等。 在QT ...

    QT工作

    PyQt是 GPL 和 commercial 两种许可方式,而PySide则主要遵循LGPL。PyQt5和PySide2分别是对应Qt5的Python绑定,它们的功能基本相同,但在某些细节上可能有所不同。 在QT工作中,首先需要理解Qt的基本组件,如窗口...

    python-qt_qt-python_

    1. **PyQt或PySide**:Python与Qt的接口主要由两个库提供,即PyQt(基于 GPL 和商业许可证)和 PySide(基于 LGPL)。它们提供了对Qt库的Python绑定,使得Python程序员可以轻松地使用Qt的全部功能。 2. **创建窗口...

    清华qt配套资源.rar

    PySide是基于LGPL授权,而PyQt则有GPL和商业两种授权。它们使得Python开发者能利用Qt的强大功能,同时享受Python的简洁和灵活性。 3. **Qt Designer**:Qt Designer是Qt开发环境的一部分,用于快速创建GUI界面。...

    QtSupportApp

    PyQt使用了 GPL 和 commercial 两种许可,而 PySide 仅使用 LGPL 许可,这使得PySide在商业项目中的使用更加灵活。尽管两者在API上有细微差别,但功能大体相同,都能实现Qt的所有特性。 回到【QtSupportApp】,这个...

    Graphical user interface design with Python & Qt

    PySide是Qt for Python项目的官方绑定,其开源协议为GNU GPL v3,并且具有商业友好的LGPL版本。 创建一个简单的GUI应用程序,首先需要理解几个基本的类和概念。QApplication类包含了主事件循环,它是GUI程序的核心...

    AnyQt-0.0.6-py2.py3-none-any.whl.zip

    这两个库都是Python对Qt库的绑定,PySide2遵循LGPL协议,而PyQt5遵循GPL和商业许可。通过AnyQt,开发者可以无需关心具体使用哪个库,从而降低依赖性问题,同时也可以更方便地在不同项目间切换,或者根据需求选择适合...

    一些有用的Python函式庫列表.doc

    - **PySide**: 为了解决PyQT的GPL问题,提供了LGPL授权的QT库移植。 - **PyGTK**: GTK的Python版本,用于创建GUI应用程序。 2. **游戏开发**: - **pygame**: 基于SDL的简单2D游戏开发库。 - **Python-Ogre**: ...

Global site tag (gtag.js) - Google Analytics