ubuntu搭建pyqt5開發環境


到PyQt官網去下載最新版本

https://www.riverbankcomputing.com/software/pyqt/download5

根據提示我們首先應該安裝SIP,什么是SIP呢,百度一下,是用來調用c/c++模塊的,因為qt是用c++寫的,pyqt就是一個中間件,我們寫一句python代碼

告訴pyqt我要生成一個窗口,然后pyqt就去用到sip的東西去調用qt的c++窗口模塊,個人理解,不保證准確

說到這里我們的SIP已經下載下來了,文件sip-4.17.tar.gz

tar -xzvf sip-4.17.tar.gz

cd sip-4.17/

python3 configure.py  因為我們是要搭建的pyqt5,pyqt5需要python3.x  所以這個地方用python3 來執行配置文件 現在的ubuntu發行版默認都是自帶 python2.x和python3.x 兩個版本

如果這個步沒有錯誤的話 sudo make && sudo make install 就安裝好了

遇到錯誤一定要看錯誤描述,我到最后一步就出錯了 ,提示我stdio.h沒有找到,應該是沒有gcc編譯環境  解決辦法: sudo apt-get install build-essential

接着還會提示缺少 Python.h  解決辦法  :  sudo apt-get install python3-dev

第一步完成 接着我們下載PyQt源文件:PyQt-gpl-5.5.1.tar.gz

tar -xzvf PyQt-gpl-5.5.1.tar.gz

cd PyQt-gpl-5.5.1/

python3 configure.py   配置這一步出現錯誤,

 

他默認去找qt4下面的qmake,下面他提示我說:“看樣子你用的python3” 試試自己指定qmake的路徑,好,根據他的提示我自己指定qmake的路徑

python3 configure.py  --qmake=/usr/lib/x86_64-linux-gnu/qt5/    寫到這個地方我就按tab補全路勁  結果使勁按下面根本就沒有qmake,

也就是說我們還沒有安裝qt,

解決辦法 : sudo apt-get install qt5-default 

修正一下,如果按照上面一行安裝qt通常來說不是最新版本,我第一次就這么干的,安裝完我去看pyqt的庫發現少了很多,比官方介紹的要少很多庫,

qt官方文檔介紹QtWebEngine用來替代QtWebKit,但是我發現我的庫里面居然沒有QtWebEngine,再去看pyqt官方文檔,也列出了QtWebEngine庫,

還列出了很多我本地沒有的庫,正納悶兒,我在代碼里面偶然看到一個qt的版本函數QtCore.qVersion() ,然后我就輸出看了一下,結果我的版本是 qt5.2.1

我於是明白了什么,馬上去qt官網下載最新的5.5  ,

下載地址:http://www.qt.io/download-open-source/

首先映入眼簾的就是那個大大的 Download Now 按鈕,這個是在線安裝程序,下載下來后就是一個安裝器,我試了兩次,非常慢,基本上都是半路卡死

所以強烈建議下載離線版:紅框圈出來的地方,進去過后找到Linux 二進制包,繼續往下面滑動還有源碼包,推薦下載二進制包就可以了,方便些,

下載下來是:qt-opensource-linux-x64-5.5.1.run

添加執行權限: sudo chmod +x qt-opensource-linux-x64-5.5.1.run 

運行:./qt-opensource-linux-x64-5.5.1.run

安裝過程中可以選擇qt的路徑,我安裝在 /opt/Qt5.5.1 下面

然后重新配置:

python3 configure.py  --qmake=/opt/Qt5.5.1/5.5/gcc_64/bin/qmake

接下來配置就通過了,然后就是  sudo make && sudo make install  

這一步根據電腦性能可能要等一會兒,我一步用了20多分鍾,要結束的時候又報錯了,no

'qgeolocation.h' file not found

我去看了一下下載下來的PyQt文件里面 cd PyQt-gpl-5.5.1/QtPositioning/ && ls 

發現沒有這個頭文件,這個模塊主要是用於定位的,手機上定位用的多,電腦上還是算了吧  然后回到上一步重新配置,直接忽略這個模塊

python3 configure.py --qmake=/opt/Qt5.5.1/5.5/gcc_64/bin/qmake  --disable=QtPositioning

重新 sudo make && sudo make install 通過

OK,現在本地的庫和官方介紹保持一致了。

小測一下導入import PyQt5沒問題,但是提示:(注意:這一步錯誤你們因該遇不到,我因為之前裝了pyqt4才導致的問題)

the sip module implements API v11.0 but the PyQt5.QtCore module requires API v11.2

google了一番:

import sip ;  print(sip, sip.SIP_VERSION_STR)

它輸出的居然是: ” /usr/lib/python3/dist-packages/sip.cpython-34m-x86_64-linux-gnu.so “  4.1.5

看了一下stackoverflow 上的討論,提問者貼出來的是  ” /usr/lib/python3/dist-packages/sip.so “  4.1.5

我進入目錄看一下,我里面也有一個sip.so庫, 然后我就試了一下把原來的 sip.cpython-34m-x86_64-linux-gnu.so  改了個名字

奇跡發生了有木有!!! 這次輸出 ” /usr/lib/python3/dist-packages/sip.so “  4.1.7 了  真不容易。。

到此。PyQt5環境安裝結束,各種坑基本上都領略了一番。好簡單測試一下

 1 #!/usr/bin/python3
 2 # -*- coding: utf-8 -*-
 3 
 4 import sys
 5 from PyQt5.QtWidgets import QApplication, QWidget
 6 
 7 
 8 if __name__ == '__main__':
 9     
10     app = QApplication(sys.argv)
11 
12     w = QWidget()
13     w.resize(250, 150)
14     w.move(300, 300)
15     w.setWindowTitle('Simple')
16     w.show()
17     
18     sys.exit(app.exec_())

運行效果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM