iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python详细介绍模型封装部署流程
  • 518
分享到

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

2024-04-02 19:04:59 518人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、桌面应用软件二、Pyside2&Qt designer三、模型封装部署四、Pyinstaller五、总结一、桌面应用软件 桌面应用软件是基于GUI(Graphical

一、桌面应用软件

桌面应用软件是基于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程序打包成一个独立可执行软件包,支持windowslinuxMac 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模型封装内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python详细介绍模型封装部署流程

本文链接: https://www.lsjlt.com/news/120036.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Python详细介绍模型封装部署流程
    目录一、桌面应用软件二、Pyside2&Qt designer三、模型封装部署四、Pyinstaller五、总结一、桌面应用软件 桌面应用软件是基于GUI(Graphical...
    99+
    2024-04-02
  • Vue封装DateRangePicker组件流程详细介绍
    目录前言一、封装el-date-picker二、父组件中进行引用总结前言 日期选择器在实际使用中,可能会要求默认固定日期、回显日期或者是时间固定点(00:00:00到23:59:59...
    99+
    2022-11-16
    Vue DateRangePicker Vue封装DateRangePicker组件
  • python流程控制详细介绍
    目录1. 布尔逻辑1.1 条件控制语句-if1.2 if/else 语句1.3 if/elif 语句2 循环控制语句2.1 循环控制之for2.2 循环控制之while3 for v...
    99+
    2024-04-02
  • 详细介绍 Yolov5 转 ONNX模型 + 使用ONNX Runtime 的 Python 部署(包含官方文档的介绍)
    1 Pytorch模型转Onnx 对ONNX的介绍强烈建议看,本文做了很多参考:模型部署入门教程(一):模型部署简介 模型部署入门教程(三):PyTorch 转 ONNX 详解 以及Pytorch的官...
    99+
    2023-08-31
    python pytorch 深度学习 目标检测
  • Dubbo2.7X安装部署详细流程分析
    一、安装注册中心zookeeper 下载地址:https://mirrors.bfsu.edu.cn/apache/zookeeper/ 1.下载直接解压,进入../conf/目录下...
    99+
    2023-02-03
    Dubbo 安装部署 Dubbo 2.7X 安装部署
  • CSS盒模型的详细介绍
    本篇内容主要讲解“CSS盒模型的详细介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS盒模型的详细介绍”吧!为了给文档树中的各个元素排版定位(布局),浏览...
    99+
    2024-04-02
  • 使用 docker 部署 APISIX的详细介绍
    二话不说,上个 docker-compose.yml 为敬! version: "3" services: apisix-dashboard: image: apache...
    99+
    2024-04-02
  • seata的部署和集成详细介绍
    目录seata的部署和集成1.部署Seata的tc-server1)下载2)解压3)修改配置4)在nacos添加配置5)创建数据库表6)启动TC服务2.微服务集成seata 1)引入...
    99+
    2023-05-15
    Java seata部署和集成 seata部署 seata集成
  • Python各种类型装饰器详细介绍
    目录装饰器说明装饰器分类最简单的装饰器用于修改对象的装饰器用于模拟对象的装饰器--函数装饰器用于模拟对象的装饰器--类方法装饰器用于模拟对象的装饰器--类装饰器特殊应用的装饰器类实现...
    99+
    2024-04-02
  • python学习Selenium介绍及安装部署详解
    目录selenium介绍selenium原理Selenium安装部署步骤1. 准备好python环境:2. 下载selenium并安装:3. 下载浏览器对应的driver版本:4.d...
    99+
    2024-04-02
  • 用docker部署RabbitMQ环境的详细介绍
    前置条件: 已经安装好docker 1.查找镜像(有2种方式) ①登录rabbitmq官网找到docker镜像,选择想要的镜像的tag https://www.rabbitmq.co...
    99+
    2024-04-02
  • seata docker 高可用部署的详细介绍
    版本 1.4.2 官方文档 dockerhub 启动 通过环境变量SEATA_CONFIG_NAME指定配置文件位置/root/seata-config/registry.conf ...
    99+
    2024-04-02
  • C++ 封装 DLL 供 C# 调用详细介绍
    目录1、VLC代码封装1.1 QT(C++)工程1.2static 声明 m_instance 优化效率1.3封装 DLL1.4应用程序的导出函数1.5 vlc 简单封装的具体实现2...
    99+
    2024-04-02
  • Python装饰器详细介绍
    目录装饰器一、介绍二、通过高阶函数+嵌套函数==>实现装饰器1、变量知识回顾2、高阶函数(装饰器前奏)3、嵌套函数(装饰器前戏)三、装饰器1、装饰器2、有参装饰器3、终极装饰器...
    99+
    2024-04-02
  • Docker部署SonarQube的详细流程
    目录前言简介安装MySQL1. 拉取mysql 镜像2. 创建网络3. 创建并运行容器4. 允许外网访问安装SonarQube1.拉取镜像2. 创建工作目录3.运行容器4.创建容器并...
    99+
    2024-04-02
  • Node.js 与并发模型的详细介绍
    目录进程线程内核态线程用户态线程轻量级进程(LWP)小结协程I/O 模型阻塞 I/O非阻塞 I/O同(异)步 I/ONode.js 的并发模型总结前言: Node.js 现在已成为构...
    99+
    2024-04-02
  • MyBatis详细执行流程的介绍
    本篇内容介绍了“MyBatis详细执行流程的介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Mybatis简介MyBatis 是一款优秀的...
    99+
    2023-06-14
  • python中re模块的详细介绍
    本篇内容介绍了“python中re模块的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!正则表达式的元字符有. ^ $ * { [ ...
    99+
    2023-06-04
  • PyTorch模型安卓部署流程(NCNN)
            上一篇介绍了PyTorch模型部署流程(Onnx Runtime)的相关部署流程,再来简单的回顾一下~ 深度学习模型部署介绍         模型部署指让训练好的深度学习模型在特定环境中运行的过程。模型部署会面临的难题: 运...
    99+
    2023-08-31
    pytorch 人工智能 python
  • k8s部署Ingress并创建规则的详细介绍
    目录一、Ingress介绍二、Ingress文件获取1.1 、说明1.2 、文件内容三、k8s应用 ingress-controller.yaml四、创建Ingress规则五、应用文...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作