适用于Python的AoT编译器

问题描述

我想让我的Python脚本在诸如微控制器之类的裸​​机设备上运行而无需解释器。我知道已经有用于Python的JIT编译器(如PyPy)和解释器(如cpython)。

但是,我见过的现有解释器(例如cpython)占用的内存很大(在MB范围内)。

是否有用于Python的AOT编译器(即通过诸如LLVM之类的中介直接编译为本地硬件)?

我认为,与现有实现相比,这样的编译器将使Python运行起来更快,并且内存占用更少。如果有的话,我想知道为什么该解决方案没有得到普及。

解决方法

正如您已经提到的, Cython 是一个选项(但是,由于C运行时需要与程序一起实现Python功能,因此结果确实不错)。

关于 LLVM ,Google有一个名为 无人吞咽 的项目。但是,该项目大部分都被放弃了。您可以找到有关它的一些信息here

基本上,这是将LLVM优化引入Cython运行时的尝试。例如JITTING Python代码。

另一种较旧的替代方法是 脱落皮肤 ,它将Python编译为C ++。可以在here中找到有关它的一些信息。

与皮肤脱落相似的另一种选择是将自己限制为Python语言的一部分,并使用micropython