类型:Python,C++ & Qt4,创建时间:May 5, 2017, 10:23 a.m.
标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/104/。
PyQt 现在还不支持从pip
下载安装,习惯virtualenv
开发的时候会比较麻烦,总不能为了一个 PyQt 就放弃了virtualenv
吧。
有两种方案,一是在系统里面安装 PyQt,然后每次创建virtualenv
以后,把系统的 PyQt 链接到环境的site-packages
里面。这个办法 stackoverflow 里面有描述:
Is it possible to add PyQt4/PySide packages on a Virtualenv sandbox?
我这里还有一种麻烦一点的方法,就是从源代码安装 PyQt。其实 stackoverflow 上面也有讲,不过我做了一些改动。
How to install SIP and PyQt on a virtual environment?
Qt 是编译与安装是另外一个事情,本文就不再详述了。Linux 用户一般用包管理器安装即可,Windows用户下载 Qt 安装包搞定。
首先生成一个virtualenv
,这里注意了,sip
会向 python 的pysp/include/python3.5m/
目录里面写入sip.h
文件,所以要求 include 目录是可以写入的,默认的virtualenv
做了软链接。所以命令行是这样的:
$ virtualenv -p /usr/local/bin/python3.5 --always-copy pysp $ . pysp/bin/activate $ pip install -r requirements.txt # 这里安装项目的其它依赖包
第二步要安装 sip
(pysp) $ mkdir build (pysp) $ cd build (pysp) $ tar -xvf ~/downloads/sip-4.19.2.tar.xz (pysp) $ cd sip-4.19.2 (pysp) $ python configure.py (pysp) $ make -j8 (pysp) $ make install
第三步就是编译安装 PyQt 了,这里是我改动的地方。一般说来,使用 PyQt 的人只会使用QtCore
,QtGui
,QtWidgets
几个模块,QtNetwork
,QtSql
,QtQuick
之类的在 python 领域都有更好用的替代品,所以我们不打算编译那些不用的模块——当然,如果想用 Eric6 IDE 的话,所有的 Qt 模块都是需要编译的。编译过程大概是这样的:
(pysp) $ cd .. (pysp) $ tar -xvf ~/downloads/PyQt_gpl-5.8.2.tar.xz (pysp) $ cd PyQt_gpl-5.8.2 (pysp) $ python configure.py --qmake /usr/bin/qmake-qt5 --no-qsci-api -e QtCore -e QtGui -e QtWidgets (pysp) $ make -j8 (pysp) $ make install
其中关键的步骤在于执行configure.py
的时候指定--no-qsci-api
,告诉 pyqt 不要往系统公共目录安装 qsci 文档,反正也没啥用,使用多个-e
告诉 PyQt 只安装三个模块。
好了,现在在 python 里面使用 PyQt 了。
写个简单的测试脚本看看:
1 2 3 4 5 6 | import sys from PyQt5.QtGui import * app = QApplication(sys.argv) w = QWidget() w.show() app.exec() |
标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/104/。
暂时还没有任何评论。