PyOxidizer是一个用于生成嵌入Python的二进制文件的实用程序。PyOxidizer的主要目标是使复杂的打包和分发问题变得简单,因此应用程序维护人员可以专注于构建应用程序而不是使用构建系统和打包工具进行工作。
PyOxidizer能够生成单个文件可执行文件-包含Python的副本及其静态链接的所有依赖项以及嵌入在可执行文件中的所有资源(如.pyc文件)。您可以将单个可执行文件复制到另一台计算机并运行其中包含的Python应用程序。它只是有效。
PyOxidizer公开了它的低级功能,用于将自包含的Python解释器作为工具和软件库嵌入。因此,如果您不想发送仅包含Python应用程序的可执行文件,您仍然可以使用PyOxidizer来实现生成一个包含Python的库,适合在任何应用程序中进行链接,或者直接使用PyOxidizer的嵌入库将Python嵌入到更大的应用程序中。
该名称的Oxidizer部分来自Rust:PyOxidizer生成的可执行文件是从Rust编译的,Rust代码负责管理嵌入式Python解释器及其所有操作。如果您不了解Rust,那没关系:PyOxidizer尝试使Rust的存在对最终用户几乎不可见。
虽然解决包装和分发问题是PyOxidizer的主要目标,但解决Rust问题的副作用是PyOxidizer可以作为这两种语言之间的桥梁。PyOxidizer可用于轻松地向任何Rust项目添加Python解释器。但事实恰恰相反:PyOxidizer也可用于向Python添加Rust。使用PyOxidizer,您可以引导一个新的Rust项目,该项目包含嵌入式Python和您的应用程序。最初,您的项目是几行Rust,它实例化Python解释器并运行Python代码。随着时间的推移,功能可以(重新)写在Rust中,而以前的Python项目可以利用Rust及其多样化的生态系统。由于PyOxidizer抽象了Python解释器,这对最终用户来说都是不可见的:你可以将应用程序从Python重写为Rust,人们可能甚至都不知道,因为他们从未看到过libpython,.py文件等。
评论