将应用程序部署到其他系统/平台#

开发了一两个应用程序后,你可能想要将它们分发给其他用户。如果你对Python包没有太多经验,你可能甚至问过:我如何创建一个Python可执行文件?

如果你来自编译型编程语言,部署可能几乎无关紧要,但对于Python来说却有些困难。

Python应用程序的部署过程被称为“冻结”,即向其他用户提供你的虚拟环境内容。

重要

由于Python不支持WebAssembly和移动平台,如Android和iOS,因此你不能直接将这些平台中的应用程序部署到这些平台,你需要使用更复杂的过程来做。

注意

对于嵌入式系统,你目前需要为目标平台构建Qt for Python,并将安装部署与你的应用程序一起。

可重复部署#

一个常见的方法是只提供一个 requirements.txt 文件,你在其中声明你的依赖项。用户需要从那里安装它们才能运行你的应用程序。

例如,假设我有一个包含两个依赖项(module_amodule_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用户冻结和分发应用程序。

编译Python#

尽管Python本身不支持编译,但有一些补充工具可以让你实现这一点。你可以查看Nuitka 项目来了解更多信息。