我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python详细介绍模型封装部署流程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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 软件技术架构

二、Pyside2&Qt designer

(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

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详细介绍模型封装部署流程的文章就介绍到这了,更多相关Python模型封装内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python详细介绍模型封装部署流程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue封装DateRangePicker组件流程详细介绍

在后端管理项目中使用vue来进行前端项目的开发,但我们都知道Vue实际上无法监听由第三方插件所引起的数据变化。也无法获得JQuery这样的js框架对元素值的修改的。而日期控件daterangepicker又基于JQuery来实现的
2022-11-16

Dubbo2.7X安装部署详细流程分析

这篇文章主要介绍了Dubbo2.7X安装部署详细流程分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-02-03

python cx_Oracle模块的安装和使用详细介绍

python cx_Oracle模块的安装 最近需要写一个数据迁移脚本,将单一Oracle中的数据迁移到MySQL Sharding集群,在linux下安装cx_Oracle感觉还是有一点麻烦的,整理一下,做个总结。 对于Oracle客户端
2022-06-04

BIO、NIO、IO多路复用模型详细介绍&Java NIO 网络编程

文章目录 前言基本概念BIO过程NIO过程IO多路复用过程Java NIO编程Java NIO 核心概念Java NIO 示例 总结 前言 上文介绍了网络编程的基础知识,并基于 Java 编写了 BIO 的网络编程。我们知道
2023-08-16

各种Python库安装包下载地址与安装过程详细介绍(Windows版)

在用Python开发时(Windows环境),会碰到需要安装某个版本的第三方库,为了以后查找、安装方便,总结如下: windows版的各种Python库安装包下载地址: http://www.lfd.uci.edu/~gohlke/pyth
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录