天天看點

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

簡述

原來在windows下實作的python code,因為業務需要,要将其放到Ubuntu(其實是Linux)下來進行開發和demo。是以安裝了目前最新的Ubuntu16.04 64bit系統,并搭建帶有GUI的python開發環境。

環境與工具選擇

最終确認選擇“Ubuntu16.04(64 bit)+ Python3.5 + Qt5.7.0 + SIP4.18.1 + PyQt5.7 + QScintilla2.9.2 + Eric6.0 ”

首先Ubuntu16.04是預設安裝了python2.7和python3.5的,是以python這部分就可以不需要安裝了。因為涉及GUI的開發,是以要準備pyqt的環境等東西。檢視系統python版本:

python
python3
python3.5      
[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

另外,需要安裝一個python子產品:

sudo apt-get install python3-dev      

否則後面的SIP安裝會有找不到python.h的錯誤提示。

QT安裝

軟體安裝

可以從官網下載下傳,也可以從​​這裡​​下載下傳,我下載下傳了5.7.0的Linux 64bit版本,是一個.run檔案。

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

使用上面的兩行指令,進行安裝,此時會彈出安裝對話框:

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

然後按照提示一步步選擇即可:

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

安裝完成後,可以直接打開QT Creator:

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

軟體配置

我的Qt5.7.0安裝在/home/ethan下,這是在前面的安裝步驟時選擇的。而在/home/ethan/Qt5.7.0/5.7/gcc_64/bin/下有qmake。

安裝完成後用下面的指令配置一下PATH,在目前使用者主目錄下的.bashrc (or .zshrc)檔案中加入:

export QTDIR=/home/ethan/Qt5.7.0/5.7/gcc_64/
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${QTDIR}/lib
export PATH=${QTDIR}/bin:${PATH}      

此時再在指令行中輸入qmake,看到如下:

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

說明配置成功了。

另外需要将/usr/lib/x86_64-linux-gnu/qt4/bin/qmake軟連接配接到/home/ethan/Qt5.7.0/5.7/gcc_64/bin/qmake上,否則後面在編譯安裝PyQt時可能會出問題:

sudo ln -s /home/ethan/Qt5.7.0/5.7/gcc_64/bin/qmake /usr/lib/x86_64-linux-gnu/qt4/bin/qmake      

這裡最好把OpenGL的庫也安裝上,不然後面的GUI相關工具的安裝會有問題:

sudo apt-get install mesa-common-dev  
sudo apt-get install libglu1-mesa-dev -y      

SIP安裝

因為系統接口都是C, C++的而python要調用這些C/C++接口,就需要這個SIP,安裝PyQt之前必須先安裝對應版本的SIP。PyQt編譯時使用的SIP版本必須與python預設調用的SIP保持一緻!否則python中是無法調用PyQt的。QT安裝的是目前最新的QT5.7.0,這裡SIP最新版本也到了4.18.1,從​​SIP下載下傳​​這裡下載下傳SIP安裝檔案,sip-4.18.1.tar.gz。在下載下傳SIP之前,需要确認下自己的系統沒有預設安裝過其他版本,否則容易造成混亂。用

sip -V      

可以看到系統的sip版本。不過我的系統并沒有SIP的。

下載下傳的sip-4.18.1.tar.gz是一個源碼包,需要在本地編譯後安裝:

4.18.1.tar.gz   
    cd sip-4.18.1  
    python3 configure.py  
    sudo make  
    sudo      

然後需要核對下目前的SIP版本以及python3中使用的SIP的版本,看兩者是否一緻。核對目前SIP版本:

sip -V      

會看到是4.18.1

然後指令行中輸入python3,打開python3.5環境,輸入:

>>> import sip
>>> print(sip.SIP_VERSION_STR)      

也看到顯示是4.18.1的,這樣就說明SIP版本一緻了,安裝OK。

QScintilla安裝

QScintilla2是連接配接編譯器和Python的接口,是Eric的必需前置元件。QScintilla2 中需要單獨安裝3個子產品,本體,Designer和python bindings。這一步先隻安裝本體部分,後面兩個需要等安裝了PyQt5才能安裝,這個順序不能搞錯,不然會在安裝QScintilla的python bindings時會無法生成C++ code,導緻安裝的失敗。首先需要從​​QScintilla下載下傳​​這裡下載下傳源碼包。下載下傳完成後,對QScintilla_gpl-2.9.3.tar.gz進行解壓:

tar -xzvf QScintilla_gpl-2.9.3.tar.gz  
cd QScintilla-gpl-2.9.3      

安裝本體:

cd Qt4Qt5  
qmake qscintilla.pro  
sudo make  
sudo      

如果在上面的sudo make時,出現“/usr/bin/ld: cannot find -lGL”問題,可以用如下指令做個軟連接配接:

sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so      

之後再去sudo make。

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

PyQT5安裝

PyQt是Python的一個跨平台圖形開發工具集,是Python與Qt的成功融合。PyQt包含了大約440個類、超過6000個的函數和方法。

首先從​​​PyQt5下載下傳​​這裡下載下傳目前最新版本,PyQt5_gpl-5.7.tar.gz。使用如下指令編譯安裝:

tar -zxvf PyQt-gpl-5.7.tar.gz  
cd PyQt-gpl-5.7  
python3 configure.py
sudo make
sudo      

然後使用python3指令進入python環境,輸入:

>>>import      

此時沒有任何提示,說明安裝沒有問題,PyQt5 module import OK。

QScintilla安裝後續部分

前面已經安裝了本體Qt4Qt5部分了,這裡在安裝完PyQt5後,再繼續安裝後面的兩個部分。

安裝Designer

cd QScintilla-gpl-2.9.3/designer-Qt4Qt5  
qmake designer.pro   
sudo make  
sudo      

如果在sudo make時,遇到“fatal error: GL/gl.h: No such file or directory”的問題,這是由于系統中沒有安裝OpenGL庫所導緻。使用如下指令進行安裝OpenGL庫即可:

sudo apt-get install mesa-common-dev  
sudo apt-get install libglu1-mesa-dev -y      

安裝後再進行sudo make,就OK了。

安裝Python bindings

cd QScintilla-gpl-2.9.3/Python  
python3 configure.py --pyqt=PyQt5  
sudo make  
sudo      

這裡Python bindings安裝時需要指定 –pyqt=PyQt5參數,否則預設是為PyQt4安裝。或者直接修改其configure.py,将pyqt5_is_default = False改為pyqt5_is_default = True也可。

Eric6安裝

Eric是一款強大的開源Python IDE,支援Qt界面設計器的Eric在Python GUI開發中更是首屈一指,Python+PyQt+Eric已經成為一種标準的Python GUI開發平台。首先從​​Eric6下載下傳​​這裡下載下傳安裝包代碼–eric6-6.1.7.tar.gz。然後用如下指令解壓安裝:

tar -zxvf eric6-6.1.7.tar.gz
cd eric6-6.1.7  
sudo python3 install.py      

此過程會檢測之前安裝的各個軟體及其版本資訊,并且很快會安裝完成:

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

因為是通過sudo python3 install.py來安裝,在打開eric6時也要在前面加上sudo:

sudo      

接下來打開eric6界面進行配置,主要是配置eric編輯器功能:

剛打開界面,就提示需要進行配置:

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

選擇Settings -> preference -> Editor -> Autocompation。勾選所有選框,打開代碼自動完成功能:

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

選擇Settings -> preference -> Editor -> QScintilla 。勾上左右的兩個選框,然後在下面source中,選擇from Document and API files:

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

選擇Settings -> preference -> Editor -> APIs。勾選Complie APIs Autocompation,在Language中,選擇python3。點面下面的Add from installed APIs按鈕,選擇住需要的.api檔案。最後點選Compile APIs:

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

選擇Settings -> preference -> Interface -> Interface。右側Language根據喜好選擇中文或者English,我這裡并沒有安裝中文語言包,是以使用預設的English。

接下來選擇自己的工程文檔将要放置的位置:

[Ubuntu--Install]Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6開發環境

最後要重新開機eric才生效。

接下來用一個小的demo簡單驗證下python開發環境是否搭建OK。

建立一個demo1.py的python源代碼,demo code:

#!/usr/bin/env python  
from PyQt5.QtWidgets import (QApplication, QLabel)  
import sys  


if __name__ == "__main__":  
    app = QApplication(sys.argv)  
    label = QLabel("<center>Hello World with PyQt5!</center>")  
    label.resize(200, 50)  
    label.show()  
    sys.exit(app.exec_())       

然後在放置demo1.py路徑下,使用如下指令運作該demo:

python3 demo1.py      

接下來看到運作效果如下:

參考文章