部署#
部署或冻结应用程序是 Python 项目的关键部分,这意味着将所有必需的资源打包在一起,以便应用程序能够在客户端的机器上运行。然而,由于大多数大型项目不是基于单个 Python 文件,因此分发这些应用程序可能会是一个挑战。
- 以下是一些您可以使用的一部分分发选项
以应用程序内容正常 ZIP 文件的形式发送。
构建合适的 Python 包(wheel)。
将应用程序冻结到一个单独的二进制文件或目录。
提供原生安装程序(msi、dmg)
如果您考虑选择方案 3,那么从 6.4 版本开始,我们提供了一个名为 pyside6-deploy 的新工具,可以将您的 PySide6 应用程序部署到所有桌面平台 - Windows、Linux 和 macOS。有关如何使用该工具的更多详细信息,请参阅 pyside6-deploy:适用于 Python 的 Qt 的部署工具。有关 Android 部署,请参阅 pyside6-android-deploy:适用于 Python 的 Qt 的 Android 部署工具。此外,您还可以使用以下所示的其他流行部署工具
尽管您可以使用这些工具部署 PySide6 应用程序,但我们建议使用 pyside6-deploy,因为它更容易使用,并且可以获得最优化可执行文件。由于 Qt for Python 是一个跨平台框架,我们专注于 Qt 所支持的主要三个平台的解决方案:Windows、Linux 和 macOS。
下表总结了这些打包工具的平台支持
名称 | 许可协议 | Qt 6 | Qt 5 | Linux | macOS | Windows |
---|---|---|---|---|---|---|
fbs |
GPL |
是 |
是 |
是 |
是 |
|
PyInstaller |
GPL |
部分 |
是 |
是 |
是 |
是 |
cx_Freeze |
MIT |
是 |
是 |
是 |
是 |
是 |
py2exe |
MIT |
部分 |
部分 |
否 |
否 |
是 |
py2app |
MIT |
是 |
是 |
否 |
是 |
否 |
briefcase |
BSD3 |
部分 |
是 |
是 |
是 |
是 |
Nuitka |
MIT |
是 |
是 |
是 |
是 |
是 |
注意,只有 fbs、cx_Freeze、briefcase 和 PyInstaller 符合我们的跨平台要求。
由于这些是命令行工具,您需要特殊的钩子或脚本来处理图像、图标和元信息等资源,然后在将它们添加到您的包之前。此外,这些工具不提供更新应用程序包的机制。
要创建更新包,请使用PyUpdater,这是一个基于 PyInstaller 的工具。
fbs 工具为用户提供了一个漂亮的用户界面,可以按步骤安装应用程序。
注意
从 Qt for Python 5.12.2 版本起支持部署。
以下是一组教程,说明如何使用这些工具