可以使用PyPy/RPython生成一个小的独立可执行文件吗?

Chr*_*gan 25 python compiler-construction pypy translate rpython

(或者,"可以使用PyPy/RPython将Python编译/转换为C/C++ 而不需要Python运行时吗?")

我试图通过它的RPython及其Python,它的运行和编译以及它的翻译来理解PyPy,并且有些失败.

我有一个假设的Python项目(适用于Windows); 我想保持它的大小,大约100千字节(ONO),而不是使用py2exe所需的几兆字节(在UPX之后).我可以以任何方式使用PyPy 1来生成不依赖于Python26.dll的独立可执行文件吗?如果可以的话,它是否需要遵循RPython限制,例如for只处理内置类型,还是完整的Python语法?

我确实意识到,如果可以做到这一点,我几乎肯定不能直接使用Python的C模块.


1 (自提问时起,情况变得更加清晰,工具链的这一部分更明确地被称为RPython而不是PyPy; 2010年情况并非如此.)

fij*_*jal 17

是的,PyPy可以从RPython代码生成独立的可执行文件.这意味着,在编写代码时,您需要遵循所有尴尬的RPython规则.您的Python代码完全不可能开箱即用,移植现有的Python代码通常并不好玩.它不会使可执行文件像C一样小,但是例如使用boehm GC的rpystone目标(来自pypy/translator/goal)在剥离后在64位上是80k.