前言
是一個大作業,
在做的過程(等環境安裝好的過程中)把步驟都記錄下來。
決定用python
來寫,因爲需要有圖形界面,所以就要安裝qt
,不知道是我網慢的原因??還是啥,卡了很久。
打算就在mac
本機上弄了,開始試了一下在Ubuntu
虛擬機上安裝環境,感覺虛擬機裏太慢了…太影響效率了…所以最後還是決定在mac
上弄。
python2
是很久很久之前已經通過brew
安裝了的,好像命令行時候直接使用python
或者python2
都是調用的brew
安裝的python
(版本試2.7.15
),忘記啥時候配置過這個東西了。
在github
上找到一個上一屆的repo
,emm…不知道爲啥是同時用了python2 python3
,python3
是用來支持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❌
也不知道到底需不需要安裝(應該是需要的)…爲了省時間,就同時安裝Qt
和sip
了,使用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…我下載的Qt
是5.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.15
和pyqt5 5.12.1
https://www.riverbankcomputing.com/software/sip/download
https://www.riverbankcomputing.com/software/pyqt/download5
編譯方式(先sip
後pyqt5
):
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
編譯時候輸出信息中有。
各個參數是什麼,在踩坑集錦裏面提到過。
坑點總結
可能踩坑大集錦裏寫的太亂了,稍微整理一下我的心路歷程…
python2.7
裝pyqt5
是不能直接用指令裝的,最好還是編譯,而且其實自己編譯也不復雜;sip
通過brew
裝到的那個版本不太對,或者你可以查查怎麼裝指定版本,但是還是覺得自己編譯也挺方便的;sip
和pyqt5
的版本要有對應關係,我在網上查到說具體哪兩個版本之間相互對應好像官網上沒有說,就只能試…(我自己沒有到官網去查過);pyqt5
在5.11
版本之後就去掉了一個waitForEvents
這個東西。感覺應該是因爲我裝Qt
是裝的5.12.2
,然後嘗試了裝pyqt5 5.9.2
,所以會在編譯時候報這個錯,所以應該是這兩個版本(Qt
和PyQt5
)也要對應着來;- 還嘗試了裝
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…大作業也已經應付完了…在做之前想好好寫,寫個自己滿意的,結果做的時候就很着急,想趕快弄完,??應付過去了…
不過整個過程中還是有很多收穫的。嗯,就醬。