在国产操作系统安装 PyQt5
零、写作背景
-
我为什么使用 QT
- Qt 是一个开源且跨平台的 GUI 图形库,dropbox 的客户端使用了它
-
为什么用 Python 而不是 C++
- python 语法简单,且不用担心内存越界
- 我的 C++ 不甚熟练
如果你要适配的系统自带 python 版本老 <= 3.6,即便你源码安装了新版本的python,有时无法通过 pip 安装到 pyqt5。就需要源码安装 pyqt5,经过一番摸索总结了如下方法,记录在此以备之后查阅。
一、编译并安装 python3.6.4
# 安装依赖 https://bugs.python.org/issue31652
yum install -y libffi-devel zlib-devel bzip2-devel libcap-devel openssl-devel libaio
mkdir -p /usr/local/python3/lib
# --enable-shared 为了 pyinstaller 打包时顺利找到系统依赖
# https://stackoverflow.com/questions/43333207/python-error-while-loading-shared-libraries-libpython3-4m-so-1-0-cannot-open
./configure --prefix=/usr/local/python3 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/python3/lib"
make
make install
# 将 python 3.6 包含进环境变量
# 执行完该命令后,将其追加到 ~/.bashrc 文件中
export PATH=/usr/local/python3/bin:$PATH
二、安装 qt5 开发环境
yum install -y qt5-qtbase-devel
pip install sip==5
三、编译并安装 PyQt5
# 下载链接可能会失效,但始终可以从这里获取到可用的 https://pypi.org/project/PyQt5/#files
wget https://files.pythonhosted.org/packages/7c/5b/e760ec4f868cb77cee45b4554bf15d3fe6972176e89c4e3faac941213694/PyQt5-5.14.0.tar.gz
tar xzvf PyQt5-5.14.0.tar.gz && cd PyQt5-5.14.0
python3 configure.py --qmake /usr/lib64/qt5/bin/qmake --sip /usr/local/python3/bin/sip5
make && make install
四、总结
尽管本教程很短,但一开始我并没打算以源码安装的形式进行(多次因依赖无法满足的经验让我对源码安装产生了恐惧)。
正如《闻香识女人》中那场演讲所说:“如今我走到人生的十字路口,我一向知道哪条路是正确的,这毋庸置疑。我知道,但我从不走,为什么?因为太他妈苦了。”
- 尝试通过
pip3 install PyQt5
的出错代码找解决方案,但并没有找到恰当的解决之道。 - 尝试
PyQt5
的二进制安装包,无果 - 尝试使用
python 3.6
的venv
模块创建一个虚拟的环境安装 PyQt5, 失败 - 不得已,下载了
PyQt5
的源码包,构建过程并不顺利,好在每一步的错误原因都给的很具体,基本上都通过google
找到了解决之法- 漫长的
configure
make
andmake install
之后 (大约20分钟)PyQt5
成功安装了
- 漫长的