測試系統包括: 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