什么是 .pex 文件?¶
tl;dr¶
PEX 文件是独立的可执行的 Python 虚拟环境。 更确切地说,它们是精心构造的压缩文件,带有 #!/usr/bin/env python
和特殊的 __main__.py
,允许你与 PEX 运行时交互。关于 zip 应用程序的更多信息,见 PEP 441。
要开始建立你的第一个 pex 文件,请直接进入 构建 .pex 文件。
为什么是 .pex 文件?¶
带有 .pex 扩展名的文件 – (”PEX 文件” 或 “.pex 文件”) – 是独立的可执行的 Python 虚拟环境。PEX 文件使部署 Python 应用程序变得很容易:部署过程变得像 scp
那样简单。
单个 PEX 文件可以支持多个平台和 Python 解释器,使其成为分发命令行工具等应用程序的一个有吸引力的选择。例如,这个功能允许在 OS X 笔记本和生产的 Linux AMI 上方便地使用同一个 PEX 文件。
.pex 文件是如何工作的?¶
PEX 文件依赖于 Python 导入器中的一个特性,它认为模块中存在一个 __main__.py
是将该模块作为可执行文件的信号。例如,python -m my_module
或 python my_module
将执行 my_module/__main__.py
,如果它存在的话。
由于 Python 导入子系统的灵活性,python -m my_module
不管 my_module
是在磁盘上还是在一个 zip 文件中,都可以工作。在包含 __main__.py
的 .zip 文件的顶部添加 #!/usr/bin/env python
,并标记为可执行,这将使它变成一个可执行的 Python 程序。pex 利用这一特性,以建立可执行的 .pex 文件。这在 PEP 441 中有更详细的描述。