Mac環境下配置python2.7 pyqt5

前言

是一個大作業,
在做的過程(等環境安裝好的過程中)把步驟都記錄下來。
決定用python來寫,因爲需要有圖形界面,所以就要安裝qt,不知道是我網慢的原因??還是啥,卡了很久。
打算就在mac本機上弄了,開始試了一下在Ubuntu虛擬機上安裝環境,感覺虛擬機裏太慢了…太影響效率了…所以最後還是決定在mac上弄。

python2是很久很久之前已經通過brew安裝了的,好像命令行時候直接使用python或者python2都是調用的brew安裝的python(版本試2.7.15),忘記啥時候配置過這個東西了。

github上找到一個上一屆的repo,emm…不知道爲啥是同時用了python2 python3python3是用來支持pyqt5的…我打算先試着都用python2。我看網上查到的應該是支持的。
Sniffer

環境配置

安裝QT

常規操作,到官網上下載對應操作系統版本的開源QT,然後傻瓜式操作等待安裝。
(我就卡在這裏,卡了好久好久好久…emm…陪伴是最長情的告白☹️)
(安裝時間非常非常非常的長,祝福你的網速足夠快)
在這裏插入圖片描述
安裝完這個之後,需要將Qt添加到環境變量中。
打開~/.bash_profile文件,再其中添加:

export QTDIR=/Users/mac/MyOwn/Qt/5.12.2/clang_64     //這裏對應自己的qt安裝位置
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
export PATH=$PATH:$QTDIR/bin

之後再使用sourch ~/.bash_profile指令使得修改生效。
在這裏插入圖片描述

安裝sip❌

也不知道到底需不需要安裝(應該是需要的)…爲了省時間,就同時安裝Qtsip了,使用brew install sip…然後自動安裝了好多東西,甚至python2 python3都又給我裝了一遍???/黑人問號臉.jpg

這步沒有用…看安裝pyqt5吧…踩坑集錦,最後整理正確做法…活着真好。??
懷疑自己是不是又菜又衰。??

安裝pyqt5

下面是按我嘗試的步驟說的,如果你不想看,那可以直接跳過這一部分,看最後的正確做法。??好人一生平安。


踩坑大集錦

pip install python-qt5
(參考的那個github說直接brew install pyqt5就把QT sip這些依賴都給安裝了,但是…感覺這樣應該是用的python3,所以就沒有直接安裝)

直接pip install是不行的,一直報錯,emm…只能試着手動編譯了。
參考了這個鏈接:
python2.7安裝pyqt5

下載對應版本的pyqt5(這個版本是要跟sip對應的,我就是隨便試的)
在這裏插入圖片描述

python configure.py -d /usr/local/lib/python2.7/site-packages/ --qmake=/Users/mac/MyOwn/Qt/5.12.2/clang_64/bin/qmake --sip=/usr/local/bin/sip --sip-incdir=/usr/local/include

其中的qmake就是對應which qmake得到的那個path,--sip-incdir對應的是sip.h的path

然後執行make make install就等着吧,不知道能不能成功。

失敗了…我找的版本是5.9.2,然後make報了一個錯。
在這裏插入圖片描述
查了一下,說是因爲在5.11之後的版本就把這個member給去掉了…編譯不成功,所以import也不行。emm…我下載的Qt5.12.2版本的,可能有影響吧。所以打算再試一下下載一個5.11.2,最開始下載的5.11.3,說是sip的版本太低了,不滿足要求…也不知道降了一個小個版本行不行…感覺要涼涼…??實在不行就還是用python3,但是不知道那個repo是怎麼把python2 python3合在一起用的。

遇到了種種問題…下載完5.11.2,還是不行,一直提示錯誤。
在這裏插入圖片描述

然後我就找到一個網頁,照着那個重新編譯了一下sip來解決這個問題。
https://www.riverbankcomputing.com/static/Docs/PyQt5/installation.html
在這裏插入圖片描述
但是仍然不行,還是報那個錯,查啊查,發現說是可能是一個bug??就是沒用。
http://python.6.x6.nabble.com/private-sip-td5235854.html 我理解的這裏面說的是這個意思…於是乎…我只能放棄了。
emm…感覺人生到達了巔峯。
然後我就在這個鏈接下載了5.12.1版本的pyqt
https://www.riverbankcomputing.com/software/pyqt/download5

sip是在https://www.riverbankcomputing.com/software/sip/download下載的…重新編譯。

在這裏插入圖片描述
希望不要再有error了…讓我回去睡個好覺好嘛??
make的過程一直會有很多重複的error,給我一種沒有正確執行的錯覺,但是多等一會就好了)

終於可以了,激動人心。
在這裏插入圖片描述


正確做法

在下面兩個鏈接分別下載sip 4.19.15pyqt5 5.12.1

  1. https://www.riverbankcomputing.com/software/sip/download
  2. https://www.riverbankcomputing.com/software/pyqt/download5

編譯方式(先sippyqt5):

tar -xvf sip-4.19.15.tar.gz
cd /sip-4.19.15
python configure.py -d /usr/local/lib/python2.7/site-packages/
make
make install

tar -xvf PyQt5_gpl-5.12.1.tar.gz
cd PyQt5_gpl-5.12.1
python configure.py -d /usr/local/lib/python2.7/site-packages/ --qmake=/Users/mac/MyOwn/Qt/5.12.2/clang_64/bin/qmake --sip=/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/bin/sip --sip-incdir=/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/include/python2.7
sudo make
make install

路徑對應上自己本地的路徑,sip的相關路徑在sip編譯時候輸出信息中有。

各個參數是什麼,在踩坑集錦裏面提到過。


坑點總結

可能踩坑大集錦裏寫的太亂了,稍微整理一下我的心路歷程…

  1. python2.7pyqt5是不能直接用指令裝的,最好還是編譯,而且其實自己編譯也不復雜;
  2. sip通過brew裝到的那個版本不太對,或者你可以查查怎麼裝指定版本,但是還是覺得自己編譯也挺方便的;
  3. sippyqt5的版本要有對應關係,我在網上查到說具體哪兩個版本之間相互對應好像官網上沒有說,就只能試…(我自己沒有到官網去查過);
  4. pyqt55.11版本之後就去掉了一個waitForEvents這個東西。感覺應該是因爲我裝Qt是裝的5.12.2,然後嘗試了裝pyqt5 5.9.2,所以會在編譯時候報這個錯,所以應該是這兩個版本(QtPyQt5)也要對應着來;
  5. 還嘗試了裝5.11.2來着,但是一直報了一個錯(上面有截圖),看到網上有解決辦法是說要在編譯sip的時候添加一個--sig-module參數,但是我按照這個方法試了還是不行,就又找到帖子說這可能是個bug??

差不多坑的地方就是這樣啦。其實應該是好好調研好再去一個一個裝的,但是不,我做不到??我就喜歡踩坑。??

一直感覺用到make make install這些自己編譯是特別煩的…這次經歷讓我覺得咦,好像還比一直查找別人弄好的東西方便一點。??emm…怪我沒有了解過這個東西吧…之後有時間還是要好好看一下的。


安裝pypcap

直接pip install pypcap就可以了。(用來抓包的庫)

安裝dpkt

直接pip install dpkt就可以了。(用來解析包的庫)

安裝VSCode插件PYQT Integration

直接到擴展那裏去搜,安裝就好了。
然後配置擴展,寫入QT designer的路徑。因爲pyqt-tools只支持windows,而我們安裝的QT已經有了QT designer了,在安裝路徑下就可以找到。
在這裏插入圖片描述

在這裏插入圖片描述
(注意,Designer.app其實是個文件夾,不是真正的可執行文件,所以真正的配置路徑需要再Designer.app之後再加上/Contents/MacOS/Designer)

配置好之後,鼠標右鍵新建一個form,就會調用Qt,開始設計窗口了。
在這裏插入圖片描述

要編譯ui文件時候發現說找不到pyuic5這個指令,搞半天沒弄好,就直接自己在命令行裏用pyuic5了。方法如下:

修改~/.zshrc文件,添加alias pyuic5="python -m PyQt5.uic.pyuic",這樣就可以直接使用pyuic5這個命令了。pyuic.py文件在pyqt5的編譯目錄下
source ~/.zshrc 使文件立即生效
執行pyuic5 "Ui_main.ui" -o "Ui_main.py"指令就可以把ui文件轉成py文件了

結束

環境配置就說完了…emmm…大作業也已經應付完了…在做之前想好好寫,寫個自己滿意的,結果做的時候就很着急,想趕快弄完,??應付過去了…
不過整個過程中還是有很多收穫的。嗯,就醬。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章