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

标签 python compiler-construction translate pypy rpython

(或者,“PyPy/RPython 是否可以用于将 Python 编译/翻译成 C/C++不需要 Python 运行时?”)

我试图用它的 RPython 和它的 Python,它的运行和它的编译和它的翻译来理解 PyPy,但有些失败。

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

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


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

最佳答案

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

关于python - PyPy/RPython 可以用来生成一个小的独立可执行文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4251964/

相关文章:

python - 如何更新odoo中所有产品的字段中的不同记录?

c - GCC 中 "-Wa,option"的用途是什么?

c++ - 无法在另一台计算机上运行我的 exe 文件。 "Application requested the runtime to terminate it in an unusual way"错误

c - 如何编译 GCC 生成的 asm?

objective-c - 如何将这个枚举从 objective-c 翻译成 swift?

c++ - 反调试器技术 : How to hide a thread from the debugger using VB. NET?

python - 在 python 中解决 Equi 任务

python - 使用线程/多进程读取多个文件

c++ - OpenCV:相对于引用图像移动/对齐面部图像(图像配准)

python - SubmitField 是否需要验证器?