##1 项目描述##python
为了减轻妹子工做中处理Excel的辛苦,用python写了几个处理xlsx的代码,分别完成一些独立的任务,如根据考勤记录判断天天将来、迟到、早退的名单,实现两个复杂xlsx文件的单元格对比,等等。但妹子毕竟是文科生,直接提供py代码而且要求在命令行中调用,仍是极度的不友好。因此此次但愿可以完善一下,主要实现三个目标:功能整合、提供GUI、打包成exe。linux
仍旧使用python,通过一番调研决定使用pyqt开发GUI。git
##2 安装##github
个人本本是mac,一直以来也以为mac(或者linux)比windows更适合于开发,因此此次的代码工做依旧在mac os上进行。windows
为了使用pyqt,须要在mac上具有这些条件:app
###2.1 Xcode###工具
这个不用多说了,用过Xcode开发过的人都应该据说过,没有的话装一个便可。post
###2.2 Qt###开发工具
到Qt官网上下载安装便可,若是不清楚使用哪个,能够考虑个人选择。.net
###2.3 SIP###
下载完毕后解压并在命令行中进入该目录,执行如下代码。
cd sip-4.16.8/ python configure.py make sudo make install
###2.4 PyQt4###
固然如今pyqt最新的版本应该是5点几了,不过个人需求应该pyqt4就能够知足。
下载完毕后解压并在命令行中进入该目录,执行一下代码。
cd PyQt-mac-gpl-4.11.4/ python configure.py make sudo make install
###2.5 参考###
完成以上四个步骤,即可以在mac os中使用pyqt4了(固然,你还得装了python),进入python而后试试import PyQt4吧,若是能成功导入说明一切顺利。
其余在mac os上安装pyqt4的参考资料:
http://blog.csdn.net/watsy/article/details/8857252
http://www.noktec.be/python/how-to-install-pyqt4-on-osx
##3 开发## 个人项目托管于Github,example文件夹里面包含了一些pyqt4的教程例子,My_dear.py是最终的程序代码,整合了考勤文件处理和Excel表格对比两个功能。界面看起来大概是这样(界面求不吐槽,毕竟不是产品,不用在意设计,功能实现就能够啦!),左边的列表里的两项即对应不一样的标签页。
pyqt4的教程例子主要来源于这里。
##4 打包##
若是只是python代码的话,别人的电脑上若是想运行就须要配置一样的环境,因此最好打包成产品,别人运行起来只须要一个文件便可。
我使用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
固然也能够打包成pkg或dmg等格式,参考这里。
可这不是我要的效果,由于这个最终是要给妹子用的,妹子单位上班的地方用的台式机装的倒是windows,因此平台差别的问题这时候浮现了出来,一开始就弄错了开发平台,由于mac os上开发的程序是不可能打包成exe的= =。
##5 出奇简单的Windows##
因此转战到实验室的windows台式机上再次开发,却发现此次windows的开发流程比mac os简单多了。在windows上,有了python,若是想使用pyqt4,安装一个软件就够了,里面包含了你须要的一切!
下载地址在这里,直接根据你的python版本和位数选择exe便可。
安装过程当中会默认选择系统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为可选参数,主要包括:
因此对于个人GUI,参数的选择是-Fw。
##6 总结##
在本次开发过程当中,出于我的习惯选择了mac os做为开发平台,后面因为导出exe的需求在windows上再次作了尝试。总的来讲,接触并初步熟悉了pyqt4在mac os和windows上的部署和开发,以及用PyInstaller打包py程序的方法,仍是收获良多的。