问题描述
我想让我的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。