测试系统包括: CentOS 6.4, CentOS 5.9, ArchLinux
CentOS 5.9:
准备:
安装 Yum 的扩展源:
EPEL:
https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F
RPMforge:
http://repoforge.org/use/ 或 CentOS的wiki
1. 搜索PyQt的rpm包(推荐搜索站:http://pkgs.org/ )
CentOS 5 官方源的是PyQt3版本,而搜索到 EL GIS Plus 这个源有 python2.6 和 PyQt4-4.5,果断在yum上配置这个源。
#rpm -Uvh http://elgis.argeo.org/repos/5/elgis-release-5-5_0.noarch.rpm //生成.repo文件 #rpm --import http://elgis.argeo.org/RPM-GPG-KEY-ELGIS //导入key
在 /etc/yum.repos.d/ 目录中多出了 elgis.repo 和 elgis-testing.repo 两个文件。
通过 #vim elgis.repo 修改里面的配置,把 [elgis-plus] 处的 enabled 设置为1(开启使用)。
[elgis-plus] name=EL GIS 5 Plus - $basearch baseurl=http://elgis.argeo.org/repos/5/elgis-plus/$basearch enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ELGIS
保存修改后,使用 #yum makecache 命令清空一下 yum 的缓存。
2. 安装PyQt4
再次使用 #yum search pyqt 发现新的rpm包,安装 #yum install **.rpm
PS:这个包已经包含了 QtWebKit ,不需要另外再去安装扩展库咯,一yum搞掂。。。
3. 检查是否安装成功
这个rpm包是默认装 python2.6 的,所以要安装前确保 /usr/bin/python 下的版本是2.6。
使用 #python2.6 命令进入python的交互模式
>>> import PyQt4 >>> help(PyQt4)
查看 python 帮助信息中是否包含了QT模块,特别看看有木有 QtWebKit 模块。
4. 执行 .py 文件,使用 QT 库做网页截图
如:#python testScreenShot.py
执行后,会发现报错:test.py: cannot connect to X server
X server 是用于图形界面的服务,详细可参阅百度百科链接:xorg , X11
由于此处只需执行脚本命令,不需要具体的图形界面,因此通过创建一个虚拟的 X-Server 即可实现(Xvfb)。
5. 安装 Xvfb —— 提供 X 窗口系统仿真 X 服务器
继续用 yum 安装 Xvfb
#yum install xvfb
#yum install Xorg xauth xorg-x11-fonts* # Xorg, xauth, xorg-x11-fonts* 是三个包,只安装xvfb后无法执行xvfb-run,可安装这三个包尝试解决
Q:在 CentOS 5.9 上安装 xvfb 后出现问题,没有在 /usr/bin 目录中生成 xvfb-run 命令
A:最后手动下载一个 .sh 文件解决
#wget http://www.flexthinker.com/wp-content/uploads/2009/11/xvfb-run.sh.txt #cp ./xvfb-run.sh.txt /usr/bin/xvfb-run.sh #chmod u+x /usr/bin/xvfb-run.sh
6. 再次通过使用 xvfb 成功执行 py 文件:
#xvfb-run.sh python testScreenShot.py