麻烦不断,搞定一个又来一个。
安装完SIP,打开Visual Studio x64 Win64 Command Prompt (2010),切到PyQt5.0源码目录下,运行configure.py,本以为能顺利进行,结果如下图所示:
查了一下,说是PyQt源码不包含Qt部分,需要单独下载,qt-opensource-windows-x86-msvc2010-5.5.0.exe
下载完成后再次运行configure.py,依旧报上述错误,看来需要手动把C:\Qt\Qt5.5.0\5.5\msvc2010\bin到环境变量PATH里
又一次运行configure.py,好消息是不报上面的错误了,坏消息是报下面的错误:
照提示又加上--verbose参数运行了一次,得出详细错误信息
看来又是32位nmake和64位nmake的问题,64位不行果断启动32位 Visual Studio Command Prompt (2010)
运行configure.py,错误信息如下:
好你个老妖精,没完没了了。大意是说PyQt5的协议和Qt的协议不兼容。
PyQt5 is dual licensed on all platforms under the Riverbank Commercial License and the GPL v3. Your PyQt5 license must be compatible with your Qt license. If you use the GPL version then your own code must also use a compatible license.
PyQt5, unlike Qt, is not available under the LGPL.
再引用别人的调查成果:
Qt 4.5中提供了三种授权协议,分别是GPL, LGPL和Commercial,可能很多人要问,为什么同样的一个产品要提供三种授权协议,什么情况下使用什么的样的授权协议最合适?在这里我就大致解释一下:
GPL全称是The GNU General Public License,是目前大多数的GNU程序和超过半数的自由软件使用的许可协议。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。
回到LGPL,LGPL的全称是 GNU Lesser General Public License,GNU 较宽松公共许可证,也是由协议是由自由软体基金会发布的许可证,是一个主要为类库使用设计的开源协议,和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。
除了GPL和LGPL两种开源协议之外,Qt还提供了Commercial商业协议,Qt的商业协议是由Nokia定义的,由Nokia和购买方签订的,具有法律效应的Qt产品授权协议。 Commercial License相教与GPL和LGPL,对于商业客户提供了更多的灵活性,客户可以任意的修改Qt的源代码,开发商业软件,而不需要公开任何源代码。并且,在Commercial License中,我们还提供了技术支持服务。当然,商业授权协议是需要费用的。
到底什么时候需要选择GPL和LGPL呢?一个最显而易见的理由就是他们都是免费的,使用LGPL和GPL版本的Qt是不需要支付任何费用的,当然我们也相应的不会提供技术支持。如果你打算开发真正的开源软件,并希望使用者也可以保持开源,那么GPL是更好的选择,因为所有人,不论你自己还是将来基于你的代码进行再次开发都必须开源。如果你打算开发闭源(不开放源代码)的商业软件,那么LGPL则更适合,但必须满足下面两个条件:
1. 你的应用程序应该动态链接Qt函数库,并使你的应用程序与未做修改的LGPL库分开发布。同时必须确保使用者(接受者)知道应用程序使用了LGPL版本的Qt;
2. 如果你对LGPL版本的Qt进行了任何修改,并发布,则必须遵循LGPL 条款发布。任何使用者有权利得到这些修改(通常情况下是源代码),并且确保使用者可以通过这些修改自己生成相应你修改过的Qt版本。
相信到这里大家已经对Qt提供的这三种协议有了基本的了解,通常大家还会有一个疑问,就是基于这三种授权协议的Qt产品到底由多少功能上的区别,是不是商业版本的会更完整,性能更好一些?这里我可以负责任的说:99%的代码都是一样的,无论是GPL, LGPL还是Commercial,功能,性能都没有区别,唯一的区别就在于授权协议的不同。
还有一点需要说明的就是,由于LGPL是在Qt4.5这个版本里面才引入的,所以之前的Qt版本,4.4或者3.x的版本,并不提供LGPL协议,是不可逆的。同时未来发布的Qt版本,就一直会提供三种不同的授权协议版本。
PyQt采用的是GPL,Qt要与其兼容就必须采用GPL(当然二者都有商业版,不过屌丝宅男买不起,不考虑了。),意思就是哥前面下的Qt协议是LGPL的,还得重下GPL的。
不过有个疑问就是我压根没在Qt页面看到哪里区分GPL和LGPL以及商业版,难道这又是一个大坑?算了,今天先到这吧,不早了也,明天接着搞。
最后总结一下安装顺序吧
1.python3.4
2.SIP
3.Qt5.5.0
4.PyQt5.0