文章目录
前言
老规矩,先来个前言。最近用python3和pyqt5写了个程序,考虑到和其他同事要开发环境一致,需要将程序运行环境切换成python2。但直接用python2肯定是跑不通的,因为pyqt5不支持python2……查了下只能对pyqt5源码重新编译。过程也满满都是坑……废话少说,直接上操作。
一、环境搭建
1、下载sip和PyQt5
本机运行环境:Ubuntu18.04、Python2.7
如果说你的系统默认调用的是python3的话,那记得先切回python2.7
另外需要下载sip和PyQt5的源码包,我用的版本为:
sip-4.19.8
PyQt5-5.10.1
上面两个都是官网链接。这里推荐直接去官网下载,照网上其他人说的好像github的编译会出问题,因此我就没尝试。
说明:sip是RiverBank(也就是PyQt的开发商)开发的用于PyQt的Python/C++混合编程解决方案。由于Qt框架的复杂性,PyQt并没有使用Cython、SWIG的混合编程方案,而是自己单独做了一套框架。如果PyQt想正常运行,sip的版本和PyQt5的版本必须对应上,但是他们之间的版本在字面上并没有什么关联性,也就是你根本不知道你这个PyQt5对用的sip版本是什么,这个可是坑了我特别久,可以说在编译过程产生的所有问题都是因为版本不匹配导致的,并且无论是官方还是民间都没有给出两者匹配的版本说明。。
这里也提供下其他版本的下载地址,欢迎尝试:
sip各个版本的下载链接
PyQt5各个版本的下载链接
我前前后后试了N个版本,最后只有两个可行:
PyQt版本 | sip版本 |
---|---|
5.10.1 | 4.19.8 |
5.11.3 | 4.19.14 |
2、移除本机自带sip
先查看有没有sip,防止后续安装失败: