PyOxidizer一个实用程序,用于将Python项目打包到可执行文件中

高温氧化剂

几天之前 开发人员介绍了PyOxidizer实用程序的第一个版本,以 可用于将Python项目打包为单独的可执行文件的实用程序,包括Python解释器以及所有必需的库和资源。

这样的文件可以在没有安装Python工具包的环境中运行,或者与所需的Python版本无关。

PyOxidizer也可以生成与系统库不相关的静态相关的可执行文件。 项目代码以Rust语言编写,并根据MPL(Mozilla公共许可证)2.0分发。

关于PyOxidizer?

萨尔瓦多PROYECTO 基于与Rust语言同名的模块,它允许您将Python解释器嵌入Rust程序 在它们上运行Python脚本。

高温氧化剂 现在,它已经超出了Rust的插件范围,并被定位为更广泛的受众可用的工具,用于构建和分发独立的Python包。

PyOxidizer一个实用程序,旨在解决如何分发Python应用程序的问题。

对于那些不需要以可执行文件形式分发应用程序的人,PyOxidizer提供了机会来生成合适的库,以与任何应用程序链接以将Python解释器及其必要的扩展集嵌入其中。

Russel Keith-Magee将Python的应用程序分发普遍认为是未解决的问题,因为Russel Keith-Magee将代码分发视为对Python寿命的生存威胁。 用他的话说,Python从来没有关于如何将我的代码提供给其他人的一致的历史,尤其是在其他人不是开发人员而只想使用我的应用程序的情况下。

对于最终用户,以单个可执行文件的形式交付项目 它极大地简化了安装并消除了选择依赖项的工作,这对于例如视频编辑器之类的复杂Python项目而言非常重要。

另一方面 对于应用程序开发人员,PyOxidizer使他们可以节省组织应用程序交付的时间 无需使用不同的工具来为不同的操作系统创建程序包。

PyOxidizer如何工作?

使用建议的构建 它也对性能产生积极影响: 通过删除导入并定义基本模块,PyOxidizer中生成的文件比使用Python系统运行得更快。

在PyOxidizer中 模块从内存中导入 (所有内置模块都立即加载到内存中,然后在没有磁盘访问的情况下使用)。 在测试中,使用PyOxidizer的应用程序启动时间大约减少了一半。

从类似的现有项目中,可以观察到: PyInstaller(将文件解压缩到一个临时目录中并从中导入模块)。

  • py2exe(链接到Windows平台,需要分发多个文件),py2app(链接到macOS)
  • Cx-freeze(需要单独的依赖项包装),Shiv和PEX(形成zip包并在系统上需要Python)
  • Nuitka(编译代码,而不是嵌入式解释器),pynsist(链接到Windows),PyRun(专有开发,不解释操作原理)。

在目前的发展阶段, PyOxidizer已经实现了主要功能,可以为Windows,macOS和Linux生成可执行文件。

在影响深远的功能中指出,没有标准的编译环境,无法生成MSI,DMG和deb / rpm格式的程序包,并且存在涉及C语言复杂扩展的项目打包问题。

尽管缺少支持该版本的说明(“ pyoxidizer添加”,“ pyoxidizer分析”和“ pyoxidizer升级”),并且对Terminfo和Readline的支持有限,但缺少对Python 3.7以外版本的支持,对资源压缩的支持,无法交叉编译。

数据来源: https://pyoxidizer.readthedocs.io


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。