发布 Nuitka 1.1,Python 语言的编译器

发布了 Nuitka 1.1 项目,开发了一个编译器,用于将 Python 脚本转换为 C 表示形式,然后可以使用 libpython 将其编译为可执行文件,以最大程度地与 CPython 兼容(使用本机 CPython 工具来操作对象)。 与当前版本的 Python 2.6、2.7、3.3 - 3.10 完全兼容。 与 CPython 相比,编译后的脚本在 pystone 测试中表现出 335% 的性能提升。 项目代码在 Apache 许可下分发。

新版本的变化包括:

  • 以 Yaml 格式指定配置的可能性已得到扩展。
  • 已对标准库中未使用的组件(zoneinfo、concurrent、asyncio 等)的排除进行了优化,从而可以减小生成的可执行文件的大小。
  • 基于 Python 3.10 中引入的“match”运算符,在模式匹配中添加了对备用语法(“|”)的支持。
  • 确保与 jinja2.PackageLoader 的兼容性。
  • 实现了更改 __defaults__ 属性大小的功能。
  • 添加了对 importlib.metadata.distribution、importlib_metadata.distribution、importlib.metadata.metadata 和 importlib_metadata.metadata 函数的支持。
  • Onefile 编译模式添加了对在主可执行文件中包含其他二进制文件的支持。
  • 编译后的模块实现了使用 importlib.resources.files 函数的功能。
  • “--include-package-data”选项允许指定文件掩码,例如“--include-package-data=package_name=*.txt”。
  • 对于 macOS,已实现对可执行文件进行数字签名的支持。
  • 为插件提供了一种方法来覆盖可执行文件的功能。
  • 防膨胀插件的功能已得到扩展,现在可用于在使用 rich、pyrect 和 pytorch 库时减少包的数量。 已实现在替换规则中使用正则表达式的功能。
  • 上一个版本中实施的重大优化所导致的回归变化已得到解决。

来源: opennet.ru

添加评论