部署¶
部署或冻结应用程序是Python项目中的一个重要部分,这意味着要捆绑所有必需的资源,以便应用程序能够找到在客户端机器上运行所需的一切。然而,由于大多数大型项目不是基于单个Python文件,分发这些应用程序可能是一个挑战。
- Here are a few distribution options that you can use:
发送一个包含应用程序内容的普通ZIP文件。
构建一个合适的Python包(wheel)。
将应用程序冻结为单个二进制文件或目录。
提供原生安装程序(msi, dmg)
如果您正在考虑选项3,那么从6.4开始,我们提供了一个名为pyside6-deploy的新工具,该工具可以将您的PySide6应用程序部署到所有桌面平台 - Windows、Linux和macOS。要了解更多关于如何使用该工具的信息,请参阅pyside6-deploy: the deployment tool for Qt for Python。对于Android部署,请参阅pyside6-android-deploy: the Android deployment tool for Qt for Python。此外,您还可以使用下面显示的其他流行的部署工具:
虽然您可以使用这些工具部署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 |
是 |
是 |
否 |
是 |
否 |
公文包 |
BSD3 |
部分 |
是 |
是 |
是 |
是 |
Nuitka |
MIT |
是 |
是 |
是 |
是 |
是 |
请注意,只有fbs、cx_Freeze、briefcase和PyInstaller满足我们的跨平台要求。
由于这些是命令行工具,您需要特殊的钩子或脚本来处理资源,如图像、图标和元信息,然后将它们添加到您的包中。此外,这些工具不提供更新应用程序包的机制。
要创建更新包,请使用PyUpdater,这是一个围绕PyInstaller构建的工具。
fbs 工具提供了一个友好的用户界面,让用户可以逐步安装应用程序。
注意
仅支持从 Qt for Python 5.12.2 及更高版本进行部署。
这里有一系列关于如何使用这些工具的教程: