1 我的项目形容
为了加重妹子工作中解决Excel的辛苦,用python写了几个解决xlsx的代码,别离实现一些独立的工作,如依据考勤记录判断每天将来、早退、早退的名单,实现两个简单xlsx文件的单元格比照,等等。但妹子毕竟是文科生,间接提供py代码并且要求在命令行中调用,还是极度的不敌对。所以这次心愿可能欠缺一下,次要实现三个指标:性能整合、提供GUI、打包成exe。
仍旧应用python,通过一番调研决定应用pyqt开发GUI。
2 装置
我的本本是mac,始终以来也感觉mac(或者linux)比windows更适宜于开发,所以这次的代码工作仍旧在mac os上进行。
为了应用pyqt,须要在mac上具备这些条件:
- Xcode:如果零碎没有自带,那就装一个吧,mac os专属的IDLE;
- Qt:UI开发工具;
- SIP:将C++和python连贯;
- PyQt:将python和qt连贯。
2.1 Xcode
这个不必多说了,用过Xcode开发过的人都应该据说过,没有的话装一个即可。
2.2 Qt
到Qt官网上下载安装即可,如果不分明应用哪一个,能够思考我的抉择。
2.3 SIP
下载SIP,这是我的抉择。
下载结束后解压并在命令行中进入该目录,执行以下代码。
cd sip-4.16.8/ python configure.py make sudo make install
2.4 PyQt4
当然当初pyqt最新的版本应该是5点几了,不过我的需要应该pyqt4就能够满足。
下载pyqt4,这是我的抉择。
下载结束后解压并在命令行中进入该目录,执行一下代码。
cd PyQt-mac-gpl-4.11.4/ python configure.py make sudo make install
2.5 参考
实现以上四个步骤,便能够在mac os中应用pyqt4了(当然,你还得装了python),进入python而后试试import PyQt4吧,如果能胜利导入阐明一切顺利。
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为可选参数,次要包含:
- -F,-onefile:打包成一个exe文件夹;
- -D,-onedir:创立一个目录,蕴含exe文件夹,但会依赖很多文件(默认);
- -c,-console,-nowindowed:应用控制台,无界面(默认);
-
-w,-windowed,-noconsole:应用窗口,无控制台。
所以对于我的GUI,参数的抉择是-Fw。6 总结
在本次开发过程中,出于集体习惯抉择了mac os作为开发平台,前面因为导出exe的需要在windows上再次做了尝试。总的来说,接触并初步相熟了pyqt4在mac os和windows上的部署和开发,以及用PyInstaller打包py程序的办法,还是播种良多的。