没有合适的资源?快使用搜索试试~ 我知道了~
pyqtdeploy_V2.4.doc
需积分: 10 11 下载量 161 浏览量
2020-01-27
12:12:19
上传
评论
收藏 1.63MB DOC 举报
温馨提示
试读
34页
100%的pyqtdeploy_V2.4中文文档,具有参考价值,与英文文档一起参考会更准确。希望能帮助您在python移动端开发上有所帮助,并希望与您的实践交流。
资源推荐
资源详情
资源评论
pyqtdeploy_V2.4 中文引导文档
英文文档地址:https://www.riverbankcomputing.com/static/Docs/pyqtdeploy/
翻译工具:百度在线翻译,操作:Simon Song
(翻译会有疏漏,请参见英文文档查看原文)
介绍
pyqtdeploy 是一个工具,它与 Qt 提供的其他工具一起,支持使用 Python v2.7 或 Python
v3.3 或更高版本编写的 PyQt 应用程序的部署。它支持部署到桌面平台(Linux、Windows 和
macOS)和移动平台(iOS 和 Android)。
通常,您会创建 Python 解释器库、任何第三方扩展模块 PyQt 和 Qt 的静态编译版本。这
样,应用程序就没有外部依赖项。但是,没有什么可以阻止使用这些组件的共享版本来减少
应用程序的大小,但代价是增加部署的复杂性。
pyqtdeploy 本身需要 PyQt5 和 Python v3.5 或更高版本。
PyQtDead 通过获取 PyQT 应用程序的各个模块,冻结它们,然后将它们放置在 QT 资源
文件中,QT 资源文件通过 Qt 的 RCC 工具转换为 C++代码。Python 的标准库也是这样处理
的。
PyqtDebug 在 Python 解释器库周围生成一个简单的 C++包装器,它使用 Python 导入机制,
以类似于 Python 支持 zip 文件中的模块封装的方式访问嵌入式冻结模块。
最后,PyqtDebug 生成一个特定于目标的 Qt.Pro 文件,该文件描述所有生成的 C++代码。
Qt 的 qmake 工具用于生成一个 Makefile,然后生成一个可执行文件。然后,可以使用进一步
的 Qt 和/或特定于平台的工具将可执行文件转换为特定于目标的可部署包。
当运行 pyqtdeploy 时,会显示一个允许指定所有独立组件的 GUI。此信息存储在
pyqtdeploy 项目文件中。
pyqtdeploy 还没有执行要包含在应用程序中的 Python 标准库模块或第三方模块的自动发
现。你必须自己指定这些。但是它确实理解标准库中的相互依赖关系,因此您只需要指定应
用程序显式导入的那些包。
可以从命令行(或 shell 脚本或批处理文件)运行一个伙伴程序 PyqtDebug 构建,以从项
目文件生成 C++代码。
另一个配套程序 pyqtdeploy sysroot 支持创建一个系统根目录,其中包含特定于目标的特
定组件安装(例如 Python 本身和 PyQt)。
pyqtdeploy 本身不会生成最终的分发包,即由目标平台的包管理系统处理的分发包。这
留给目标平台的标准打包工具。对于桌面目标,fman 构建系统是一个可选的解决方案,包
括支持.exe 文件(对于 Windows)、.dmg 文件(对于 macOS)和.deb 和.rpm 文件(对于
Linux)。
注意
从复杂的 Python 应用程序(特别是使用外部 C 扩展模块的应用程序)创建单个可执行文
件(特别是没有外部依赖关系的可执行文件)并不是一项简单的任务。它需要有 C 代码、编
译器、构建系统的经验以及调试相关问题的能力。你被警告了!
与版本 1 的差异
自 v1 以来,对 pyqtdeploy 进行了许多更改。这些更改大多与支持工具相关,而不是与
GUI 相关。为 v1 创建的项目文件将由更高版本自动更新。
Android 需要 Pythonv3.6 或更高版本,对早期版本的支持已被删除。
v1 建议在组装可部署应用程序的各个部分时采用目录结构。这被称为 sysroot 目录。提
供了一个不受支持的脚本 build-sysroot.py,该脚本创建了 sysroot 目录,并能够生成和安装数
量有限的组件(主要是 PyQt 和相关的包)。它使用 pyqtdeploycli 程序生成的配置文件来指
定如何构建这些组件,例如启用了哪些单独的模块和功能。build-sysroot.py 已替换为完全支
持的 pyqtdeploy sysroot 程序。单个组件支持由可配置的组件插件实现。我们提供了一个
API,供您编写(并贡献)自己的插件来添加其他组件。与 v1 一样,使用 sysroot 目录结构
是完全可选的。
pyqtdeploycli 程序已被删除。生成功能已被新的 pyqtdeploy 生成程序替换。
pyqtdeploy 图形用户界面的“生成”选项卡已被删除。现在,GUI 的唯一用途是创建和修改
项目文件。
V1 生成的 C++代码和 Quest.Pro 文件试图在所有目标体系结构中都是可移植的。
pyqtdeploy 构建将为单个目标体系结构生成特定的代码,该体系结构由--target 选项确定,并
默认为主机体系结构。
作者
pyqtdeploy 版权所有(c)Riverbank Computing Limited。其主页
是 https://www.riverbankcomputing.com/software/pyqtdeploy/。
支持可从 PyQt 邮件列表获取,网址
为 https://www.riverbankcomputing.com/mailman/listinfo/PyQt/。
许可证
pyqtdeploy 是根据 BSD 许可证发布的。
安装
pyqtdeploy 可以从 PyPi 下载和安装:
pip3 install pyqtdeploy
pyqtdeploy 要求安装 PyQt5。这不是自动安装的。
部署过程概述
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 库实现了文件访问 api,这些 api 识别文件和目录名,这些文件和目录名引用使用
rcc 创建的嵌入式文件系统的内容。pyqtdeploy 实现了使用 QtCore 的导入挂钩,这样冻结的
Python 模块就可以像从普通文件系统导入一样从嵌入式文件系统导入。
请注意,pyqtdeploy 生成的代码本身并不使用 PyQt。PyQt deploy 可用于部署非 PyQt 应
用程序,包括简单的命令行脚本。但是,由于每个已部署的应用程序都与 QtCore 库链接,
因此应确保应用程序的许可证与正在使用的 Qt 版本的许可证兼容。
当应用程序由许多第三方组件(Python 包和扩展模块)组成时,必须将这些组件安装在
定义的位置,以便在应用程序构建期间可以找到它们。虽然在某些情况下,可以使用现有的
Python 安装,但是它有许多缺点:
不同的应用程序可能对第三方包的不同版本有要求,这使得共享同一 Python 安装变
得很困难。
您的应用程序可能需要对组件(包括 Python 解释器本身)进行不同的配置。
标准 Python 安装将包含动态链接的扩展模块,但您可能希望使用静态链接的版本。
当以非本机平台为目标时,不能使用它。
经验表明,将所有这些组件与任何标准的 Python 安装分离更容易。可以使用特定于目标
的系统根目录(sysroot)来包含所有必需组件的适当配置和生成版本。如果您正在开发许多
应用程序,那么您很可能会对这些应用程序所使用的组件版本进行标准化。因此,您可以创
建一个 sysroot 来构建所有应用程序。虽然使用 sysroot 是完全可选的,但强烈建议使用它。
开发可部署应用程序所需的步骤如下:
使用包含所需第三方组件的本机 Python 安装正常开发和测试应用程序。
确定所需的第三方组件并构建特定于目标的 sysroot。请参阅构建系统根目录以了解如何
使用 pyqtdeploy-sysroot 执行此操作。
为应用程序创建一个项目文件,该文件标识应用程序的源代码、应用程序使用的所有组
件及其位置。请参阅创建 pyqtdeploy 项目以了解如何使用 pyqtdeploy 执行此操作。
冻结 Python 模块并在特定于目标的构建目录中生成 qmake.pro 文件。.pro 文件将引用关
联 sysroot 中的所有必需组件。运行 qmake,然后 make 创建应用程序可执行文件。请参阅构
建应用程序以了解如何使用 pyqtdeploy 构建来完成此操作。
pyqt 演示
pyqtdeploy 源包包含一个名为 pyqt demo 的演示应用程序,可以在 demo 子目录中找到它。
演示包括:
pyqt-demo.py,这是演示的源代码
sysroot.json 是 pyqtdeploy sysroot 用来构建特定于目标的 sysroot 的 sysroot 规范
pyqt-demo.pdy 是描述应用程序及其组件的 pyqtdeploy 项目文件
build-demo.py 是一个运行 pyqtdeploy-sysroot 和 pyqtdeploy-build 创建演示可执行文件的
简单脚本。
请注意,可以为所有受支持的目标创建可执行文件,而无需对上述任何目标进行任何更
改。
运行时,演示程序会显示一个包含有趣值的 GUI 表,其中包括源代码本身的副本。
在本文档的其余部分中,演示将作为一个工作示例使用,我们将详细讨论这个示例。
注意
建议您首先使用上面显示的不同组件包的相同版本(如 sysroot.json 中所指定)。只有当
你有这些工作时,你才应该使用你真正想使用的版本。这将要求您修改 sysroot.json 和/或
pyqt-demo.pdy。
制作演示
要为本机目标生成演示,请运行:
python build-demo.py
这假定当前目录包含下列组件的适当源存档:
Python
Qt
OpenSSL
zlib
sip
PyQt5
PyQt3D
PyQtChart
PyQtDataVisualization
PyQtPurchasing
QScintilla
您可以将源文件放在其他地方,并使用--sources dir 选项指定它们的位置。可以指定任意
次数,并依次搜索每个目录。
如果不想构建所有这些文件,请编辑 sysroot.json 并删除不需要的文件。(需要
Python、Qt、sip 和 PyQt5 源代码。)
注意,在 Linux、macOS 和 Windows 上,Qt 将从源代码构建,这可能需要相当长的时间。
如果您正在为 Android 或 iOS 构建演示,那么还必须从 Qt 公司的安装程序安装 Qt 的适当版
本,因为 pyqtdeploy sysroot 不支持从源代码为这些平台构建 Qt。必须使用--installed qt dir 选
项指定 qt 的安装位置。目录名通常是 Qt 的版本号,并包含特定于体系结构的目录(例如
gcc64、android-arm7)。
build-demo.py 还有许多其他命令行选项。要查看全部内容,请运行:
python build-demo.py --help
安卓(Android)
使用的主机平台:macOS Mojave(v10.14.3)
使用的开发工具:NDK r19c、SDK v26.1.1
实现了 Python SSL 支持:动态链接绑定 OpenSSL。
实现了 Qt-SSL 支持:动态链接的绑定 OpenSSL。
iOS 操作系统
剩余33页未读,继续阅读
资源评论
宋连猛
- 粉丝: 20
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功