在国产操作系统安装 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 and make install 之后 (大约20分钟)PyQt5 成功安装了

如果遇到了 pyinstaller 打包出错的问题,可参考如下链接

https://blog.csdn.net/u014101410/article/details/103632738

posted @ 2019-12-23 16:30  SurfUniverse  阅读(635)  评论(0编辑  收藏  举报