PyQtdeploy 用户指南
目录
部署过程概览
PyQt的演示
构建演示
Android
IOS
Linux
MacOS
Windos
构建系统根目录
标准组建插件
创建Sysroot规范文件
PyQt演示的Sysroot
命令行
编写组建插件
创建PyQtdeploy项目
定义应用程序源
定义qmake配置
添加标准库包
添加其他包
添加其他扩展模块
定义文件和目录位置
构建应用程序
命令行
Windows和动态加载扩展模块
使用pyrcc的应用程序
支持PEP 302可选导入挂钩
pdytools模块
介绍
PyQtdeploy是一个工具,它通过与Qt提供的其他工具一起支持部署使用Python v2.7或Python v3.3或更高版本编写的PyQt应用程序。它支持部署到桌面平台(Linux,Windows和macOS)和移动平台(iOS和Android)。
通常,您将创建Python解释器库的静态编译版本,包含任何第三方扩展模块、PyQt和Qt。这样您的应用程序就没有外部依赖关系。但是,也可以使用任何这些组件的共享版本来减小应用程序的大小,其代价是增加了部署的复杂性。
pyqtdeploy本身需要PyQt5和Python v3.5或更高版本。
pyqtdeploy通过获取PyQt应用程序的各个模块,静态编译它们,然后将它们放在Qt资源文件中,该文件由Qt的rcc工具转换为C ++代码。Python的标准库将以相同的方式处理。
pyqtdeploy围绕Python解释器库生成一个简单的C ++包装器,它使用Python导入机制以类似于Python支持zip文件中模块打包的方式访问嵌入式静态编译模块。
最后,pyqtdeploy生成一个特定于目标的Qt.pro文件,该文件描述了所有生成的C ++代码。Qt的qmake工具用于生成一个Makefile,然后生成一个可执行文件。Qt和(或)平台的特定工具将可执行文件转换为特定于目标的可部署包。
运行pyqtdeploy时会显示一个允许指定所有单独组件的GUI。此信息存储在 pyqtdeploy项目文件中。
pyqtdeploy(尚未)执行自动发现Python标准库模块或第三方模块以包含在应用程序中。您必须自己指定。但是它确实理解标准库中的相互依赖性,因此您只需指定应用程序显式导入的那些包。
可以从命令行(或shell脚本、批处理文件)运行配套程序pyqtdeploy-build,以从项目文件生成C ++代码。
另一个配套程序pyqtdeploy-sysroot支持创建包含某些组件的特定于目标安装的系统根目录(例如Python本身和PyQt)
pyqtdeploy本身不会生成最终的分发包,即由目标平台的包管理系统处理的包。这项工作留给了目标平台的标准包装工具。对于桌面目标,fman Build System是一种替代解决方案,包括对.exe文件(对于Windows), .dmg文件(对于macOS).deb和.rpm文件(对于Linux)的支持。
注意:从复杂的Python应用程序(特别是使用外部C扩展模块的应用程序)创建单个可执行文件(特别是没有外部依赖项的可执行文件)并不是一项简单的任务。它需要C语言代码、编译器、构建系统的经验以及调试相关问题的能力。
与V1.0+的差异
自v1以来,pyqtdeploy已经发生了许多变化。大多数这些更改都与支持工具相关而不是与GUI。为v1创建的项目文件将由更高版本自动更新。
Android需要Python v3.6或更高版本,已删除对Python早期版本的支持。
v1建议在组装可部署应用程序的各个部分时采用目录结构。这被称为sysroot目录。提供了一个不受支持的脚本build-sysroot.py,它创建了sysroot目录,并且能够构建和安装有限数量的组件(主要是PyQt和相关的包)。它使用pyqtdeploycli程序生成的配置文件来指定这些组件的构建方式,例如,启用了哪些单独的模块和功能。 build-sysroot.py已替换为完全支持的 pyqtdeploy-sysroot程序。单个组件支持由可配置组件插件实现。通过一个API,您可以为其他组件编写(并提供)自己的插件。与v1一样,使用sysroot目录结构完全是可选的。
该pyqtdeploycli程序已被移除。构建功能已被新的pyqtdeploy-build程序取代。
pyqtdeploy GUI 的Build选项卡已被删除。GUI的唯一目的是创建和修改项目文件。
v1生成的C ++代码和qmake .pro文件试图在所有目标体系结构中可移植。 pyqtdeploy-build将生成特定于单个目标体系结构的代码,该体系结构由--target选项确定,默认为主机体系结构。
作者
证书
PyQtdeploy是根据BSD许可证发布。
安装
PyQtdeploy可以从PyPI中下载并安装:
pip3 install pyqtdepoly
PyQtdeploy需要安装PyQt5,它并不是自动安装的。
返回目录