PyQtdeploy 用户指南

目录

  • 介绍

    • 与V1.0+的差异
    • 作者
    • 证书
    • 安装
  • 部署过程概览
  • PyQt的演示
    • 构建演示
    • Android
    • IOS
    • Linux
    • MacOS
    • Windos
  • 构建系统根目录
    • 标准组建插件
    • 创建Sysroot规范文件
    • PyQt演示的Sysroot
    • 命令行
    • 编写组建插件
  • 创建PyQtdeploy项目
    • 定义应用程序源
    • 定义qmake配置
    • 添加标准库包
    • 添加其他包
    • 添加其他扩展模块
    • 定义文件和目录位置
  • 构建应用程序
    • 命令行
  • Windows和动态加载扩展模块
  • 使用pyrcc的应用程序
    • 支持PEP 302可选导入挂钩
  • pdytools模块

部署过程概览

PyQtdeploy的母的是将Python应用程序、Python解释器、Python标准库、Python C扩展模块、第三方Python包和第三方扩展模块转换为对于特定目标的单个可执行文件。根据目标,可执行文件可能需要通过某种方式打包才能真正部署。例如:Android应用程序需要签名并打包为.apk文件。任何此类打包都不在PyQtdeploy的范围内。

虽然PyQtdeploy允许你创建单个可执行文件,但你能根据需要将组建保留在可执行文件外部。

PyQtdeploy支持一下目标体系结构:

  • Android -32
  • Android -64
  • IOS -64
  • Linux -64
  • MacOS -64
  • Win -32
  • Win -64

完整的结构命名由平台和一个用于区分的-组成。请注意,并非所有的平台和操作位的组合都支持。

PyQtdeploy使用Qt的以下部分:

  • qmake是支持交叉编译到多个目标的QT系统。
  • rcc是一个将任意文件转换为嵌入式文件结构的C++数据结构,该文件系统可作为应用程式的一部分进行连接。
  • QtCore库实现了访问识别引用rcc创建的嵌入式文件系统内容的文件和目录名称的APIs。PyQtdeploy实现了使用QtCore的导入挂钩,以便可以像从普通文件系统导入Python模块一样从嵌入式文件系统导入静态的Python模块。

注意:PyQtdeploy生成的代码本身并不适用PyQt。PyQtdeploy可用于部署非pyqt应用程序,包括简单的命令行脚本。但是,由于每个已部署的应用程序都链接到QtCore库,所以您应该确保您的应用程序的许可与您正在使用的Qt版本的许可兼容。

当一个应用程序由许多第三方组件(Python包和扩展模块)组成时,有必要将这些组建安装在已定义的位置,以便在应用程序的构建过程中可以找到它们。虽然在某些情况下可以使用现有的Python安装,但它有许多缺点:

  • 不同的应用程序可能对第三方软件包的不同版本有要求,因此难以共享相同的Python安装。
  • 您的应用程序可能需要以不同方式配置组件(包括Python解释器本身)。
  • 标准Python安装将包含动态链接的扩展模块,但您可能希望使用静态链接的版本。
  • 在部署非本机平台时无法使用它。

经验表明,将所有这些组件与任何标准Python安装分开都更容易。特定于目标的系统根目录(sysroot)可用于包含所有必需组件的适当配置和版本构建。如果您正在开发许多应用程序,那么很可能您将对这些应用程序使用的组件版本进行标准化。因此,您可以创建一个用于构建所有应用程序的sysroot。虽然使用sysroot是完全可选的,但强烈建议使用。

开发可部署应用程序所需的步骤如下:

  1. 使用包含所需第三方组件的本机Python安装,正常开发和测试应用程序。
  2. 确定所需的第三方组件并构建特定于目标的sysroot。请参阅构建系统根目录以了解如何使用pyqtdeploy-sysroot执行此操作。
  3. 为应用程序创建项目文件,以标识应用程序的源代码以及应用程序使用的所有组件及其位置。请参阅创建pyqtdeploy项目以了解如何使用 pyqtdeploy执行此操作。
  4. 冻结Python模块并在特定于目标的构建目录中生成qmake .pro文件。该.pro文件将引用相关sysroot中的所有必需组件。运行qmake然后 make以创建应用程序可执行文件。请参阅 构建应用程序以了解如何使用 pyqtdeploy-build执行此操作。

返回目录


PyQtdeploy-V2.4 User Guide 中文 (二)的更多相关文章

  1. IAP Store Kit Guide(中文)

    IAP Store Kit Guide(中文) 一.In App Purchase概览 Store Kit代表App和App Store之间进行通信.程序将从App Store接收那些你想要提供的产品 ...

  2. js生成中文二维码

    http://www.cnblogs.com/xcsn/archive/2013/08/14/3258035.html http://www.jb51.net/article/64928.htm 使用 ...

  3. PyQtdeploy-V2.4 User Guide 中文 (一)

    PyQtdeploy 用户指南 目录 介绍 与V1.0+的差异 作者 证书 安装 部署过程概览 PyQt的演示 构建演示 Android IOS Linux MacOS Windos 构建系统根目录 ...

  4. 【Unity3D游戏开发】Application.systemLanguage无法区分简体中文和繁体中文 (二六)

    游戏发布,语言本地化需要繁体中文和简体中文 iOS8版本之前没问题,iOS9上无法正常识别这两种语言 原因是在iOS9上,Unity通过Application.systemLanguage返回的简体中 ...

  5. SDL Guide 中文译版

    SDL即Simple DirectMedia Layer,类似DirectX,是完整的游戏.多媒体开发包,但不同的是它跨越几乎所有的平台,有各种语言的接口,多种语言的文档,而这一切都是广大志愿者完成的 ...

  6. iOS.Animations.by.Tutorials.v2.0汉化(二)

    翻译自:iOS.Animations.by.Tutorials.v2.0 第一节(第1章) 动画属性 现在你已经看到了动画是多么的简单,你可能很想知道你的视图控件是怎么动起来的.本节将给你一个UIVi ...

  7. TensorFlow 官方文档 Programmer's Guide 中文翻译 —— 引言

    TensorFlow Programmer's Guide (Introduction) TensorFlow 编程手册 (引言) #(本项目对tensorflow官网上给出的指导手册(TF1.3版本 ...

  8. Intel® Threading Building Blocks (Intel® TBB) Developer Guide 中文 Parallelizing Data Flow and Dependence Graphs并行化data flow和依赖图

    https://www.threadingbuildingblocks.org/docs/help/index.htm Parallelizing Data Flow and Dependency G ...

  9. Autodesk FBX SDK Program 中文 (二)

    这是Autodesk FBX SDK学习笔记第二篇.下面部分汉字翻译自Autodesk FBX SDK Program.翻译人:有道翻译. 上一篇讲了一些FBX SDK的基本操作.创建FbxManag ...

随机推荐

  1. 『Lucas定理以及拓展Lucas』

    Lucas定理 在『组合数学基础』中,我们已经提出了\(Lucas\)定理,并给出了\(Lucas\)定理的证明,本文仅将简单回顾,并给出代码. \(Lucas\)定理:当\(p\)为质数时,\(C_ ...

  2. 基于Unity的AR开发初探:发布AR应用到Android平台

    本文接上一篇,介绍一下如何通过Unity发布第一个AR应用至Android平台,在Android手机上使用我们的第一个AR应用. 一.一些准备工作 1.1 准备Java JDK 这里选择的是JDK 1 ...

  3. 你真的理解 Spring Boot 项目中的 parent 吗?

    前面和大伙聊了 Spring Boot 项目的三种创建方式,这三种创建方式,无论是哪一种,创建成功后,pom.xml 坐标文件中都有如下一段引用: <parent> <groupId ...

  4. kubernetes实践之四:深入理解控制器(workload)

    一.Pod与controllers的关系 controllers:在集群上管理和运行容器的对象 通过label-selector相关联 Pod通过控制器实现应用的运维,如伸缩,升级等 二.Deploy ...

  5. Cenots7下安装运行.NET Core、MicroSoft SQL Server 2019 preview 的基础实践

    一:概要 适应人群:.Net初学者.想了解.Net Core在Linux系统中的运行环境搭建者.初次且想在linux上应用.Net Core开发应用程序者: 基础技能:了解.NET基础开发技能者.有一 ...

  6. React 项目生产版本迭代页面不刷新问题

    React 页面缓存 react 打包项目进行服务端部署后,会发现index.html被浏览器缓存,访问项目url指向的还是上个版本的内容.原理是index.html被缓存后,路由指向和跳转都是旧版的 ...

  7. Android之webview详解

    文章大纲 一.webview基本介绍1.什么是webview2.为什么要使用webview3.webview基本操作 二.webview高级使用1.WebView状态2.资源加载3.WebView加载 ...

  8. 自动获取windows或者linux系统IP

    1.获取Windows下的IP java.net.InetAddress.getLocalHost().getHostAddress(); 2.获取linux下的IP /** * 获取Linux下的I ...

  9. Windows Cluster 添加新节点--验证报错

    今天给既有Windows Cluster 添加节点时,验证总是不通过.报错信息为 防火墙未正确配置为故障转移群集.现将处理步骤汇总如下. 1.错误具体信息 报错的位置 --[验证警告] 的步骤中发现错 ...

  10. Shell中map的使用

    Shell中的map与array有很多的相似之处,array操作:https://www.cnblogs.com/qq931399960/p/10786111.html 一.在使用map时,需要先声明 ...