linux python pyqt4,關於linux下 Python PyQt4安裝的種種坑

Python語言功能強大、方便易用,但是在使用上卻總是有很多坑,除了python2和python3的兼容性飽受詬病外,python各種包的安裝管理也是一個容易讓初學者感到無比困惑的東西。幾天前研究基於python的網頁抓取工具:spynner,據說是一個功能強大的工具,但是需要安裝PyQt4,安裝過程中走了很多彎路,也體會到python包管理存在的一些弊端。總結了一些經驗,給大家分享一下:

spynner的安裝並不費勁,從網上下載打包文件,解壓后按照指示,運行:

python setup.py install

順利實現了安裝。

從網上下載了一些案例程序,實現對百度網頁的抓取:getwebpage.py. 在運行時報錯,開始是說無法處理unicode編碼,后來根據網上的指示卸載了一個包(名字我忘了),卸載后,這個錯沒有了,反而出現更奇怪的錯誤:

from PyQt4.QtWebKit import QtWebView: no module name QtWebKit

說是沒有QtWebKit這個模塊,這個模塊是在PyQt4這個包里的。於是重新安裝這個包,我的linux系統是deepin,一個國產debian類似的系統,先是用:

apt-cache search pyqt

查找pyqtt包,然后使用:

sudo apt-get install python-qt4

安裝PyQt4,后來發現還是不行,期間還折騰過easy_install, pip等python的包管理,發現根本找不到pyqt4這個包。無奈放了兩天,冷靜思索了一下,記起python里面可以通過help查看包的狀態,於是運行python,進入命令行:

>>>help('module PyQt4')

列出了PyQt4所有的模塊列表,仔細一看,我安裝的PyQt包里面根本就沒有QtWebKit這個模塊!上網查了一下,這個需要源碼編譯安裝PyQt4包,而且,必須有已經安裝好的QT4庫和qtwebkit庫,才會編譯安裝QtWebKit,否則就被忽略掉了!而且必須有開發庫(c++的)才行,運行命令:

dpkg -l|grep qtwebkit

發現libqtwebkit4 庫已經安裝了,這時候千萬不能大意,還要確認libqtwebkit-dev這個庫在不在,如果不在,就要運行:

sudo apt-get install libqtwebkit-dev

安裝上它,否則還是會在PyQt4編譯安裝時忽略掉(這決對是個大坑!)此外,還要注意確保已經安裝了sip,python C/C++支持庫。

安裝完庫后,到PyQt4源代碼目錄里,運行:

python configure.py

運行后會生成make文件,然后運行:

make

sudo make install

make要花很長時間,庫很多要十幾分鍾。完成安裝后,進入python命令行運行:

>>>help('modules PyQt4')

可以看到,列表里面已經有QtWebKit模塊了。再次運行spynner工具,成功搞定,一切OK!

最后總結一下,Python的包管理真的是很垃圾,無法解決依賴,甚至連提示都沒有,超級大坑。手動編譯安裝的確是無奈之舉,但是保證了安裝的可用性,特別要注意編譯時各種庫,特別是開發庫的安裝,才能保證安裝結果的正確性,否則一頭霧水。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值