1 項目描述##
為了減輕妹子工作中處理Excel的辛苦,用python寫了幾個處理xlsx的代碼,分別完成一些獨立的任務(wù),如根據(jù)考勤記錄判斷每天未來、遲到、早退的名單,實現(xiàn)兩個復(fù)雜xlsx文件的單元格對比,等等。但妹子畢竟是文科生,直接提供py代碼并且要求在命令行中調(diào)用,還是極度的不友好。所以這次希望能夠完善一下,主要實現(xiàn)三個目標:功能整合、提供GUI、打包成exe。
仍舊使用python,經(jīng)過一番調(diào)研決定使用pyqt開發(fā)GUI。
2 安裝##
我的本本是mac,一直以來也覺得mac(或者linux)比windows更適合于開發(fā),所以這次的代碼工作依舊在mac os上進行。
為了使用pyqt,需要在mac上具備這些條件:
- Xcode:如果系統(tǒng)沒有自帶,那就裝一個吧,mac os專屬的IDLE;
- Qt:UI開發(fā)工具;
- SIP:將C++和python連接;
- PyQt:將python和qt連接。
2.1 Xcode###
這個不用多說了,用過Xcode開發(fā)過的人都應(yīng)該聽說過,沒有的話裝一個即可。
2.2 Qt###
到Qt官網(wǎng)上下載安裝即可,如果不清楚使用哪一個,可以考慮我的選擇。
2.3 SIP###
下載完畢后解壓并在命令行中進入該目錄,執(zhí)行以下代碼。
cd sip-4.16.8/
python configure.py
make
sudo make install
2.4 PyQt4###
當(dāng)然現(xiàn)在pyqt最新的版本應(yīng)該是5點幾了,不過我的需求應(yīng)該pyqt4就可以滿足。
下載完畢后解壓并在命令行中進入該目錄,執(zhí)行一下代碼。
cd PyQt-mac-gpl-4.11.4/
python configure.py
make
sudo make install
2.5 參考###
完成以上四個步驟,便可以在mac os中使用pyqt4了(當(dāng)然,你還得裝了python),進入python然后試試import PyQt4吧,如果能成功導(dǎo)入說明一切順利。
其他在mac os上安裝pyqt4的參考資料:
http://blog.csdn.net/watsy/article/details/8857252
http://www.noktec.be/python/how-to-install-pyqt4-on-osx
3 開發(fā)##
我的項目托管于Github,example文件夾里面包含了一些pyqt4的教程例子,My_dear.py是最終的程序代碼,整合了考勤文件處理和Excel表格對比兩個功能。界面看起來大概是這樣(界面求不吐槽,畢竟不是產(chǎn)品,不用在乎設(shè)計,功能實現(xiàn)就可以啦!),左邊的列表里的兩項即對應(yīng)不同的標簽頁。
pyqt4的教程例子主要來源于這里。
4 打包##
如果只是python代碼的話,別人的電腦上如果想運行就需要配置同樣的環(huán)境,所以最好打包成產(chǎn)品,別人運行起來只需要一個文件即可。
我使用PyInstaller進行項目打包,在mac os上使用pip即可安裝PyInstaller。
sudo pip install pyinstaller
接下來打包成在mac os上可以直接運行的app格式,第一行命令生成打包中間文件My_dear.spec,第二行代碼處理該文件并完成打包。
pyinstaller --windowed --onefile --clean --noconfirm My_dear.py
pyinstaller --clean --noconfirm --windowed --onefile My_dear.spec
當(dāng)然也可以打包成pkg或dmg等格式,參考這里。
可這不是我要的效果,因為這個最終是要給妹子用的,妹子單位上班的地方用的臺式機裝的卻是windows,所以平臺差異的問題這時候浮現(xiàn)了出來,一開始就弄錯了開發(fā)平臺,因為mac os上開發(fā)的程序是不可能打包成exe的= =。
5 出奇簡單的Windows##
所以轉(zhuǎn)戰(zhàn)到實驗室的windows臺式機上再次開發(fā),卻發(fā)現(xiàn)這次windows的開發(fā)流程比mac os簡單多了。在windows上,有了python,如果想使用pyqt4,安裝一個軟件就夠了,里面包含了你需要的一切!
下載地址在這里,直接根據(jù)你的python版本和位數(shù)選擇exe即可。
安裝過程中會默認選擇系統(tǒng)python安裝路徑,安裝完畢之后就可以運行My_dear.py文件了。
至于windows下的打包,同樣可以使用PyInstaller。和mac os不同的是,mac os中PyInstaller是python的一個包且可通過pip下載,而在windows中則需要人工下載源碼。
下載鏈接在這里,下載完畢后解壓即可。在cmd中進入該目錄,使用以下命令即可完成打包(為了方便可以把My_dear.py也拷貝至該目錄下)。
python pyinstaller.py [opts] My_dear.py
其中opts為可選參數(shù),主要包括:
- -F,-onefile:打包成一個exe文件夾;
- -D,-onedir:創(chuàng)建一個目錄,包含exe文件夾,但會依賴很多文件(默認);
- -c,-console,-nowindowed:使用控制臺,無界面(默認);
- -w,-windowed,-noconsole:使用窗口,無控制臺。
所以對于我的GUI,參數(shù)的選擇是-Fw。
6 總結(jié)##
在本次開發(fā)過程中,出于個人習(xí)慣選擇了mac os作為開發(fā)平臺,后面由于導(dǎo)出exe的需求在windows上再次做了嘗試。總的來說,接觸并初步熟悉了pyqt4在mac os和windows上的部署和開發(fā),以及用PyInstaller打包py程序的方法,還是收獲良多的。