https://m.toutiao.com/is/L1vPGSF/?=基于Python的Excel處理工具 1 項目描述為了減輕妹子工作中處理Excel的辛苦,用python寫了幾個處理xlsx的代碼,分別完成一些獨立的任務,如根據(jù)考勤記錄判斷每天未來、遲到、早退的名單,實現(xiàn)兩個復雜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上具備這些條件:
2.1 Xcode這個不用多說了,用過Xcode開發(fā)過的人都應該聽說過,沒有的話裝一個即可。 2.2 Qt到Qt官網(wǎng)上下載安裝即可,如果不清楚使用哪一個,可以考慮我的選擇。 2.3 SIP下載SIP,這是我的選擇。 下載完畢后解壓并在命令行中進入該目錄,執(zhí)行以下代碼。 cd sip-4.16.8/python configure.pymake sudo make install復制代碼 2.4 PyQt4當然現(xiàn)在pyqt最新的版本應該是5點幾了,不過我的需求應該pyqt4就可以滿足。 下載pyqt4,這是???????我的選擇。 下載完畢后解壓并在命令行中進入該目錄,執(zhí)行一下代碼。
2.5 參考完成以上四個步驟,便可以在mac os中使用pyqt4了(當然,你還得裝了python),進入python然后試試import PyQt4吧,如果能成功導入說明一切順利。 3 開發(fā)我的項目托管于Github,example文件夾里面包含了一些pyqt4的教程例子,My_dear.py是最終的程序代碼,整合了考勤文件處理和Excel表格對比兩個功能。界面看起來大概是這樣(界面求不吐槽,畢竟不是產(chǎn)品,不用在乎設計,功能實現(xiàn)就可以啦?。?,左邊的列表里的兩項即對應不同的標簽頁。 ? pyqt4的教程例子主要來源于這里。 4 打包如果只是python代碼的話,別人的電腦上如果想運行就需要配置同樣的環(huán)境,所以最好打包成產(chǎn)品,別人運行起來只需要一個文件即可。 我使用PyInstaller進行項目打包,在mac os上使用pip即可安裝PyInstaller。 sudo pip install pyinstaller復制代碼 接下來打包成在mac os上可以直接運行的app格式,第一行命令生成打包中間文件My_dear.spec,第二行代碼處理該文件并完成打包。
當然也可以打包成pkg或dmg等格式,參考這里。 可這不是我要的效果,因為這個最終是要給妹子用的,妹子單位上班的地方用的臺式機裝的卻是windows,所以平臺差異的問題這時候浮現(xiàn)了出來,一開始就弄錯了開發(fā)平臺,因為mac os上開發(fā)的程序是不可能打包成exe的= =。 5 出奇簡單的Windows所以轉戰(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ù),主要包括:
所以對于我的GUI,參數(shù)的選擇是-Fw。 6 總結在本次開發(fā)過程中,出于個人習慣選擇了mac os作為開發(fā)平臺,后面由于導出exe的需求在windows上再次做了嘗試??偟膩碚f,接觸并初步熟悉了pyqt4在mac os和windows上的部署和開發(fā),以及用PyInstaller打包py程序的方法,還是收獲良多的。 |
|
來自: 山峰云繞 > 《Python代碼知識游戲黑客編程與英語》