发布 PyOxidizer,用于将 Python 项目打包成独立的可执行文件

由...所提交 该实用程序的第一个版本 高温氧化剂,它允许您将Python项目打包成独立的可执行文件的形式,包括Python解释器以及工作所需的所有库和资源。 此类文件可以在未安装 Python 工具的环境中执行,或者无论所需的 Python 版本如何。 PyOxidizer 还可以生成未链接到系统库的静态链接的可执行文件。 项目代码是用 Rust 编写的 分发者 根据 MPL(Mozilla 公共许可证)2.0 获得许可。

该项目基于同名的 Rust 语言模块,它允许您将 Python 解释器嵌入到 Rust 程序中以在其中运行 Python 脚本。 PyOxidizer 现在已经超越了 Rust 插件的范畴,而是被定位为构建独立的 Python 包并将其分发给更广泛受众的工具。 对于那些不需要将应用程序作为可执行文件分发的人来说,PyOxidizer 提供了生成适合与任何应用程序链接以嵌入 Python 解释器和必要的扩展集的库的能力。

对于最终用户来说,将项目作为单个可执行文件提供可以极大地简化安装并消除选择依赖项的工作,这对于复杂的 Python 项目(例如视频编辑器)来说非常重要。 对于应用程序开发人员来说,PyOxidizer 可以让您节省组织应用程序交付的时间,而无需使用不同的工具为不同的操作系统创建包。

使用建议的程序集也对性能产生积极影响 - 由于消除了基本模块的导入和定义,在 PyOxidizer 中生成的文件比使用系统 Python 时运行得更快。 在 PyOxidizer 中,模块是从内存导入的 - 所有内置模块都会立即加载到内存中,然后在不访问磁盘的情况下使用)。 在测试中,使用 PyOxidizer 时的应用程序启动时间减少了大约一半。

在现有的类似项目中,可以注意到以下内容: PyInstaller的 (将文件解压到临时目录并从中导入模块), py2exe (与Windows平台绑定,需要分发多个文件), py2应用程序 (与 macOS 相关), CX-冻结 (需要单独的依赖包), 希夫 и PEX (以zip格式打包,系统需要Python), 努伊特卡 (编译代码而不是嵌入解释器), 诗人 (与 Windows 绑定) 运行程序 (专有开发,不解释操作原理)。

在当前的开发阶段,PyOxidizer 已经实现了为 Windows、macOS 和 Linux 生成可执行文件的主要功能。 从目前无法获得的机会 著名 缺乏标准的构建环境,无法生成 MSI、DMG 和 deb/rpm 格式的包,包含 C 语言复杂扩展的打包项目存在问题,缺乏支持交付的命令(“pyoxydizer add”、“pyoxydizeranalyze”)和“pyoxydizer 升级”),对 Terminfo 和 Readline 的支持有限,缺乏对 Python 3.7 以外的版本的支持,缺乏对资源压缩的支持,无法交叉编译。

来源: opennet.ru

添加评论