32 个版本 (有破坏性)

0.24.0 2022 年 12 月 30 日
0.23.0 2022 年 11 月 8 日
0.22.0 2022 年 6 月 5 日
0.20.0 2022 年 3 月 6 日
0.2.0 2019 年 6 月 30 日

10 in #self-contained

Download history 64/week @ 2024-03-11 69/week @ 2024-03-18 20/week @ 2024-03-25 77/week @ 2024-04-01 60/week @ 2024-04-08 24/week @ 2024-04-15 23/week @ 2024-04-22 34/week @ 2024-04-29 19/week @ 2024-05-06 42/week @ 2024-05-13 49/week @ 2024-05-20 23/week @ 2024-05-27 41/week @ 2024-06-03 34/week @ 2024-06-10 31/week @ 2024-06-17 23/week @ 2024-06-24

每月下载量 133 次

MPL-2.0 许可证

2MB
40K SLoC

PyOxidizer

Build Status

PyOxidizer 是一个用于生成嵌入 Python 的二进制文件的工具。其总体目标是使复杂的打包和分发问题简单化,以便应用程序维护者可以专注于构建应用程序而不是构建系统和打包工具。

PyOxidizer 能够生成单个可执行文件,其中包含 Python 和所有依赖项的静态链接副本以及所有资源(如 `.pyc` 文件)。您可以将单个可执行文件复制到另一台机器上并运行其中包含的 Python 应用程序。它“只需工作”。

PyOxidizer 提供了将自包含 Python 解释器嵌入应用程序作为工具和软件库的功能。因此,如果您不想将只包含 Python 应用程序的可执行文件分发出去,您仍然可以使用 PyOxidizer 来生成包含 Python 的库,该库可以链接到任何应用程序,或者直接在较大应用程序中嵌入 PyOxidizer 的嵌入库。

名称中的 “Oxidizer” 部分来自 Rust:由 PyOxidizer 生成的可执行文件是由 Rust 编译的,Rust 代码负责管理嵌入的 Python 解释器和所有其操作。如果您不熟悉 Rust,那也没关系:PyOxidizer 努力让 Rust 的存在对最终用户几乎不可见。

解决包装和分发问题是PyOxidizer的主要目标,但使用Rust解决该问题的副作用是PyOxidizer可以作为这两者之间的桥梁。您可以使用PyOxidizer轻松地将Python解释器添加到任何Rust项目中。但反过来也是正确的:PyOxidizer也可以用于将Rust添加到Python中。使用PyOxidizer,您可以引导一个新的Rust项目,该项目包含嵌入的Python版本和您的应用程序。最初,您的项目只有几行Rust代码,用于实例化Python解释器并运行Python代码。随着时间的推移,功能可以(重新)用Rust编写,您的之前只使用Python的项目可以利用Rust及其多样化的生态系统。由于PyOxidizer将Python解释器抽象出来,因此这一切对最终用户来说可能是不可见的:您可以重写一个从Python到Rust的应用程序,人们甚至可能不知道,因为他们从未看到libpython.py文件等。

项目信息

🏠 PyOxidizer项目的官方主页是https://github.com/indygreg/PyOxidizer

📔 文档(从docs/目录生成)可在https://gregoryszorc.com/docs/pyoxidizer/main/找到。

💬 pyoxidizer-users邮件列表是用户讨论所有关于PyOxidizer内容的论坛。

💰 如果您想从经济上对PyOxidizer做出贡献,请通过GitHub SponsorsPatreon进行。

依赖项

~93MB
~1.5M SLoC