最近想开发一套Netty网关日志分析程序,用来分析设备的原始数据。因为网关是放在linux服务器上,之前查看日志是通过Xftp工具将日志下载到本地,然后找到对应的日志数据进行分析。
对于运维人员来说,上述的日志分析方式难度是相当大的,比如我想查看某天几点几分到几点几分的设备原始数据来分析设备的运行情况,需要将整个日志全部下载到本地,然后再海量日志文件里面找到对应的时间点。
而且,本身我也不太希望运维人员直接对服务器进行操作,人工操作风险太大,所以就考虑给运维人员开发一个小工具,既可以让他们快速的找到对应日志,又可以减少服务器的直接操作。
最初我准备用C# Winform来做这个,毕竟界面界面相对好做很多,而且我个人对Python也并不熟练。不过抱着学习的角度,最后还是准备采用Python+PyQt5来做这个开发。
言归正传,下面开始写一些我的学习心得。
(1)下载并安装PyCharm
下载地址:https://www.jetbrains.com/pycharm/download/
PyCharm我采用的是jetbrains-agent.jar方式进行激活的,具体方法可以参考:http://www.360doc.com/content/19/0717/13/36367108_849345042.shtml,因为之前开发网关的时候使用的是IntelliJ IDEA,这里激活方法基本是一致的。
(2)安装PyQt5
打开命令窗口,我这边使用的是Windows操作系统(Win+R,然后输入cmd)
执行命令:
pip install pyqt5 -i http://mirrors.aliyun.com/pypi/simple/
我使用的是阿里云的镜像地址,如果直接使用:pip install pyqt5,鬼知道会失败多少次,总是在Timeout!
(3)安装PyQt5-tools
执行命令:
pip install pyqt5-tools -i http://mirrors.aliyun.com/pypi/simple/
点击File—>Settings
找到Tools下面的External Tools
如果之前没有设置过拓展工具的话,这里是没有任何信息的,我们需要点击上面的+号添加需要的工具
我们需要添加的工具有两个,一个是QtDesigner,一个是PyUIC,如上图红框里面的两个拓展工具。
QtDesigner:是我们做界面的一个设计工具,打开QtDesigner,展现给我们的是一个可视化的UI绘制界面,其通过拖拽的方式放置控件可以随时查看控件效果,最终QtDesigner会将我们做好的界面转成.ui文件。下面会说到如何使用QtDesigner来设计界面。
PyUIC:将我们通过QtDesigner做好的界面生成的.ui文件转成.py文件,这样我们就可以使用Python对界面元素进行操作了。
我将Python安装在了D:\Python目录下,所以通过pip添加的依赖也会在D:\Python目录下,我们找到Scripts下的designer.exe
Working directory可以手动输入$FileDir$或者点击+号选择对应的Macros
Program:选择python.exe
Arguments:输入c.pyuic $FileName$ -o $FileNameWithoutExtension$.p
Working directory:输入$FileDir$
到此我们PyCharm安装PyQt5插件完成。
首先我们创建一个项目
这里有个细节需要注意,需要勾选红框标注点,否则我们安装的PyQt5库就没办法使用了。
然后点击Create即可。
创建好项目后,项目名称那里右键找到External Tools,然后选择我们之前添加的QtDesigner即可打开UI设计界面了。
Qt Designer界面如下,选择创建一个Main Window即可开始我们的UI绘制。
经过一番拖拽和方法定义后(后续文章会说详细的设计),生产了一个.ui的文件
最后右键此文件找到External Tools
选择PyUIC生成了一个.p的文件,对这个文件进行重命名为.py文件,就是我们最后得到的Python界面文件,最后定义一个类,导入我们生产的.py文件,就可以在实现类里面控制界面上的控件了。
界面是做出来了,但是相对于C#的winform来说,设计体验不是很好,感觉相对复杂了很多,也可能是与我的习惯有关。