您好,登录后才能下订单哦!
请求超时!
请点击 重新获取二维码这篇文章主要介绍“Python模型怎么封装和部署”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python模型怎么封装和部署”文章能帮助大家解决问题。
桌面应用软件是基于GUI(Graphical User Interface,图形用户界面)交互式程序,需要实现GUI库实现前端交互。
Python常见的GUI库
TKinter:基于Tk的Python库,这是Python官方采用的标准库,优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少;
wxPython:基于wxWidgets的Python库,优点是控件比较丰富、缺点是稳定性相对差点、文档少、用户少;
pyQT5,Pyside2:基于Qt的Python库,优点是控件比较丰富、跨平台体验好、文档完善、用户多、缺点是库比较大,发布出来的程序比较大;
Qt Designer:Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架;
PyQT5:"Riverbank Computing"公司早期的python GUI开发工具库,是QT与Python的结合,但并非Qt公司出品,属于“义子”;
Pyside2:2018年7月,Qt公推出的工具库,它提供了对Qt5.12+完整框架的访问,简单点来说就是在Python下使用Qt,即Qt的“亲儿子”;使用上PyQt5与PySide2差别很小,接口调用几乎一模一样。
程序打包工具:Pyinstaller
下图为Python桌面应用软件开发大体的技术架构。
图1 软件技术架构
(1)PySide2——控件
图形界面的工具基础:控件(widget)、信号(signal)与槽(solt),控件表示前端界面可显示/操作/交互的元素,如按钮、输入控件、展示控件等,供用户点击、接受用户输入、展示内容、存放其它控件。
PySide2的安装:
pip install PySide2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
下面为一个PySide2程序的实现流程:
1.定义一个应用
2.定义主窗口
3.定义需要的控件
4.执行应用,进入事件循环
# -*- coding: utf-8 -*- """ # @file name : 01_helloworld.py # @brief : 使用pyside编写第一个软件 """ from PySide2.QtWidgets import QApplication, QMainWindow, QTextBrowser, QLabel if __name__ == "__main__": app = QApplication([]) # UI应用程序管理应用 # ================================================ # 1. 定义主窗口 window = QMainWindow() # 2. 定义文本框显示 label = QLabel(window) label.setText("Hello World!") # 3. 窗口显示 window.show() # ================================================ app.exec_() # 进入QApplication的事件处理循环
图2 PySide2实现第一个GUI界面
(2)PySide2——信号(signal)与槽(slot)
用户对图形界面的控件操作就会产生信号,程序应能接收识别信号,并进行相应的处理。特点信号的处理函数称为槽。
按钮被点击时,向程序发出信号,程序自动执行btn_slot函数。
# -*- coding: utf-8 -*- """ # @file name : 02_signal&slot.py # @brief : 了解信号与槽 """ from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QLineEdit if __name__ == "__main__": app = QApplication([]) # UI应用程序管理应用 # ================================================ # first. 定义主窗口 window = QMainWindow() window.resize(500, 400) window.move(300, 310) # 2. 定义按钮控件 def btn_slot(): print("用户点击了按钮,将执行xxx") btn = QPushButton("我的按钮", window) btn.clicked.connect(btn_slot) # 3. 单行文本框 def text_slot(): text = text_edit.text() print("检测到文本框变动,当前文本框信息为:{}".format(text)) text_edit = QLineEdit(window) text_edit.move(100, 0) text_edit.setPlaceholderText('请输入信息...') text_edit.textChanged.connect(text_slot) # 窗口显示 window.show() # ================================================ app.exec_() # 进入QApplication的事件处理循环
图3PySide2实现第二个GUI界面
(3)常用控件
1.按钮:btn = QPushButton(“我的按钮”,window)
2.单行文本框:text_edit = LineEdit(window)
3.标签显示:label = QLabel(window)
4.文件选择:path_file,filetype = QFileDialog.getOpenFileName(window,"选取文件","./","All File(*);;Text Files(*.jpg)")
(4)Qt Designer
Qt Designer可以通过拖曳的方式完成复杂的界面设计,完成控件设计。Qt Designer生成的UI界面是一个后缀为.ui的文件,其实是一个XML文件。通过使用pyuic5命令将.ui文件转换成.py文件,然后将.py文件引入到自定义的Python代码中。主要分为以下四步:
安装:随着pyside2安装时,自动安装
启动:Python安装目录下Scripts\pyside2-designer.exe
转换:pyside2-uic xxx.ui > xxx.py
使用:在QMainWindow中初始化xxx.py中的控件,然后定义槽函数
图4 Qt Designer设计流程
封装--面向对象三大特性之一,面向对象(Object Oriented Programming)的三大特性如下:
封装(Encapsulation):隐藏对象的属性和实现细节,仅对外提供公共访问方式;
继承(Inheritance):使用已存在的类定义作为基础建立新类的方法;
多态(Polymorphism):“多种状态”,接口的多种不同的实现方式即为多态;
类的设计三要素:
类名:这类事物的名字;
属性:这类事物具有什么样的特征;
方法:这类事物具有什么样的行为;
图5封装模型的过程
类名:Predictor;
属性:model,path_ckpt,device,transform;
方法:preprocess,inference,get_model,get_transform;
Pyinstaller是一个用来将Python程序打包成一个独立可执行软件包,支持Windows、Linux和Mac OS,Pyinstaller可以读取您编写的Python脚本。
Pyinstaller分析代码执行所需的所有模块,然后将这些文件的副本和Python解释器一起放在单个文件夹中,或者在单个可执行文件中。
Pyinstaller的安装:
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple/
软件打包执行命令:pyinstaller xxx.py,完成后到root/dist/xxx下,找到xxx.exe
pyinstaller main.py --noconsole -F -p D:\course_study\CV_Item\self\img_cls
更新spec文件命令:
pyinstaller -F --onefile main.spec
常用参数:
-F,-onefile产生单个的可执行文件
-p,设置python导入模块的路径(和设置pythonpath环境变量的作用相似)
--noconsole软件启动时不显示命令窗
关于“Python模型怎么封装和部署”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
玻璃钢生产厂家室内商场美陈报价玻璃钢雕塑寿命多久汕头玻璃钢卡通雕塑参考价彩色玻璃钢人物雕塑惠安玻璃钢花盆花器东方韵艺术玻璃钢花盆专业制作鹤岗玻璃钢商场美陈安新县商场美陈浙江季节性商场美陈生产厂家玻璃钢雕塑方案钦州玻璃钢座椅雕塑报价郑州水果玻璃钢雕塑供应商商场美陈棚顶莆田玻璃钢雕塑生产小型百货商场情人节美陈杭州各大商场圣诞美陈延安玻璃钢雕塑工艺半边地球仪玻璃钢雕塑厂家浙江室内商场美陈哪里买玻璃钢海绵宝宝雕塑商场美陈销售企业贵阳商场美陈图片曲阳园林玻璃钢雕塑黑龙江省商场美陈10大品牌吉林省玻璃钢雕塑加工新疆玻璃钢雕塑厂家北京室内商场美陈商场美陈珠海河北商场美陈供货商商场美陈订做香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万