在完成几个应用程序的开发后,你可能希望将它们分发给其他用户。如果你对 Python 包没有太多经验,可能会问:如何创建 Python 可执行文件?
如果你经常使用的是编译性编程语言,部署程序并不困难。但对于 Python(解释性语言)来说就有些困难了。
Python 应用程序的部署,我们也称之为 “冻结”。它实质上是将你的虚拟环境内容一起分发给其他用户。
重要
由于 Python 不支持 WebAssembly 和移动平台(如 Andoird、iOS),你不能直接在这些平台部署应用程序,而需要新的步骤来完成。
注意
对于嵌入式系统,现在还需要对你的目标平台构建 Qt for Python,并随你的应用程序一起部署安装。
可重现部署
一种常用的部署方法是,只提供一个 requirements.txt 文件,在里面描述你的程序的依赖项。用户需要自己安装它们来运行你的程序。
比如我有一个项目,需要两个依赖项 module_a 和 module_b,我在 main.py 文件里引用它们。
# Content of the main.py file
from module_a import something
import module_b
# ...
所以我的应用程序的 requirements.txt 文件应该是这样的:
module_a
module_b
当用户想要执行你的 main.py 时,必须使用 pip install -r requirements.txt
命令在新的虚拟环境中安装依赖项。
重要
这种方法同时会分享你的代码。所以如果你想要隐藏应用程序的代码,这种方式就无法使用了。
冻结应用程序
这是用户分发其应用程序的最常见方法,即使代码仍然可以被最终用户使用,但要检索代码还是比较困难的。
有些常用的工具可以帮助 Python 用户冻结和分发应用程序。你可以在 Qt for Python Deployment 中找到一系列关于它们的教程。
编译 Python
尽管 Python 不原生支持编译,但还是有一些补充工具可以让你实现编译。你可以查看 Nuitka 项目以了解更多信息。
更多关于 Qt for Python 文章,可以查看 PySide6 专栏。