Windows下在Python 2.7的virtualenv中编译PyQt5
目录
该文章中的方法已过时,请使用
pip install pyqt5
直接安装PyQt
PyQt5只提供Python3的二进制包,而且PyQt的安装包不支持virtualenv,所以我选择手动编译PyQt5。
环境
Python2.7,32位版本。
Qt 5.2.1 版本,我使用官方vs2010的预编译包。
编译器,鉴于我使用vs2010版的Qt,我使用VS2008作为编译器。Python的二进制包似乎由vs2008变异而来。
Python源码包
SIP:sip-4.15.5.zip
PyQt5:PyQt-gpl-5.2.1.zip
两者均从PyQt的官网上下载。
准备
创建全新的virtualenv环境:
virtualenv --no-site-packages ENV
进入编译环境
编译PyQt需要qt工具和编译器,所以我先进入VS2008的命令行,再将QT的bin目录加入到PATH变量中。然后再启动虚拟环境。
ENV/Scripts/activate
因为编译sip时需要python27.lib,但如此建立虚拟环境时没有拷贝python\libs目录,所以将python的libs目录拷贝到ENV目录下。
编译时还需要python\include目录,所以也将include拷贝到ENV目录下。
编译
参照官方安装说明即可。
编译sip
python configure.py
nmake
nmake install
安装后,sip.exe被拷贝到ENV目录下,但在虚拟环境的PATH中只有ENV\Scripts目录,在下一步编译PyQt是会使用sip.exe,所以要将sip.exe拷贝到Scripts目录下。
编译PyQt5
python configure.py
nmake
nmake install
使用PyQt5
使用PyQt5时,需要保证PATH中含有qt5的动态链接库文件,无法找到qt5的dll文件,导入模块时就会出错。
ImportError: DLL load failed: 找不到指定的模块。
如此即可使用PyQt5.