发布了 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