对于Windows7上的Python2,需要如下工具:
- visual studio
- sip
- Qt(SDK)
如果电脑上已经装有了PyQt4,建议再装一份Python。与原来的分开。
win7安装社区版Visual Studio
使用Visual Studio是为了它的编译工具和相关库。安装时选上Windows SDK。
对于VS2017来说,使用的是这个工具 “D:Microsoft Visual Studio2017CommunityCommon7ToolsVsDevCmd.bat” 开始-所有程序-Visual Studio 2017-Visual Studio Tools
vs安装路径 D:Microsoft Visual Studio
环境变量
D:Microsoft Visual Studio2017CommunityVCToolsMSVC14.11.25503binHostx64x64;
D:Microsoft Visual Studio2017CommunityVCToolsMSVC14.11.25503lib;
Python2.7安装sip
win7 64位系统,但Python2.7是32位
下载sip源码包(例如sip-4.19.3),解压到任意位置。进入sip源码包,执行
代码语言:javascript复制python configure.py
这里Python2.7安装在D:python27
;于是sip位置在D:python27Libsite-packagessip-4.19.3
打开vs的命令行,进入sip在Python中的目录,执行
代码语言:javascript复制nmake
nmake install
win7安装Qt5
到Qt官网下载安装包。为了照顾32位的Python2.7,这里选择Qt 5.6.3 for Windows 32-bit (VS 2015, 869 MB)
添加到环境变量中
代码语言:javascript复制D:QtQt55.6.3msvc2015bin;D:QtQt5ToolsQtCreatorbin
win7编译安装商业版PyQt5
Python2.7
代码语言:javascript复制python configure.py --disable QtNfc
nmake
nmake install
参考PyQt5的README
代码语言:javascript复制COMMERCIAL VERSION
If you have the Commercial version of PyQt5 then you should also have a
license file that you downloaded separately. The license file must be copied
to the "sip" directory before starting to build PyQt5.
我们把买来的license文件复制到sip目录下。
在E:wsdocPyQtCommercialPyQt5_commercial-5.9
中,把付费后得到的pyqt-commercial.sip
复制到sip目录下
使用vs2017的命令行工具!
python configure.py
出现错误
Error: Use the --qmake argument to explicitly specify a working Qt qmake.
网上说是因为没有配置好Qt SDK的原因
可参考 PyQt setup for Qt 4.7.4
解决错误后,会提示是否接受license。根据提示输入yes。
执行python configure.py --disable QtNfc
Querying qmake about your Qt installation...
Determining the details of your Qt installation...
This is the commercial version of PyQt 5.9 (licensed under the PyQt Commercial
License) for Python 2.7.13 on win32.
nmake报错 cannot open file “msvcprt.lib”
代码语言:javascript复制fatal error LNK1104: cannot open file “msvcprt.lib”
把lib路径添加到环境变量 D:Microsoft Visual Studio2017CommunityVCToolsMSVC14.11.25503lib;
nmake报错 QtNfc.dll : fatal error LNK1169: one or more multiply defined symbols found
代码语言:javascript复制releaseQtNfc.dll : fatal error LNK1169: 找到一个或多个多重定义的符号
NMAKE : fatal error U1077: “"D:Microsoft Visual Studio2017CommunityVCTools
MSVC14.11.25503binHostX86x86link.EXE"”: 返回代码“0x491”
Stop.
NMAKE : fatal error U1077: “"D:Microsoft Visual Studio2017CommunityVCTools
MSVC14.11.25503binHostX86x86nmake.exe"”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “cd”: 返回代码“0x2”
Stop.
网上有相关的建议,把QtNfc“取消”掉,其实就是不编译QtNfc。
E:wsdocPyQtCommercialPyQt5_commercial-5.9>python configure.py --disable QtNfc
http://python.6.x6.nabble.com/error-building-QtNfc-td5185657.html
nmake
需要一段时间。电脑比较差的话,大概要1个小时。
nmake install
耗时约5分钟
试运行PyQt5
导入PyQt5模块试一试
代码语言:javascript复制from PyQt5.QtCore import QTranslator
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
对于Python2.7 PyQt5,使用pyinstaller来打包成exe文件
代码语言:javascript复制pyinstaller ui_main.py
得到相应的文件目录
运行exe弹窗报错Qt platform plugin
代码语言:javascript复制this application failed to start because it could not find or load the Qt platform plugin "windows" in ""
Reinstalling the application may fix this problem.
报错原因是找不到 Qt platform plugin
在Qt5,在安装目录下可找到 D:QtQt5ToolsQtCreatorbinpluginsplatforms
对于Python3,安装了GPL的PyQt5,可以找到 D:python35Libsite-packagesPyQt5Qtpluginsplatforms
处理方法:
不打包成一个单一的exe文件,使用pyinstaller ui_main.py
生成文件目录
在dist中,与exe文件同级的目录PyQt5/qt/plugins
中,有platforms目录
把platforms文件夹复制到与exe文件同级的位置即可
参考
How to install PyQt5 on Windows for Python 2?
编译安装PyQt5的过程
安装sip的建议