【问题标题】:python compiler蟒蛇编译器
【发布时间】:2012-02-03 22:48:48
【问题描述】:

我有一些关于 python 的疑问

  1. 为什么没有 python 编译器来创建原生代码?我找到了 py2exe 等,但它们只是打包了一个 python 解释器,因此,它又是执行代码的解释器。

  2. 难道不能像 LISP 编译器那样创建 Python 编译器,因此代码执行得更快(与 C++ 相比)?

谢谢, 维奈

【问题讨论】:

标签: python


【解决方案1】:

Nuitka – Python Compiler

它是什么

我认为应该可以为 Python 使用编译器,这是一个比 CPython 已经拥有的字节码更好的编译器。这就是 Nuitka 应有的样子。

在运行时使用 libpython 时,我尝试将纯 Python 不翻译成字节码,而是翻译成机器码(通过 C++ 编译器)。然后进行编译时和运行时分析,以便在满足某些期望的情况下以更快的模式推测性地执行事物。

【讨论】:

  • 谢谢。。这是我搜索了一段时间后第一次听说这个,看起来很有趣。这是我一直在寻找的东西.. :) 我还没有检查它是如何工作的。
【解决方案2】:

问题一:

  • Nuitka(将 Python 代码直接转为 C++)
  • ShedSkin(将隐式静态类型的 Python 编译为 C++、独立程序或 扩展模块)
  • Cython(从 Python 的超集到 C 扩展名。 Cython 来自Pyrex)

问题 2:
不确定我是否理解正确,但也许答案是:

  • psyco(用于 Python 代码的即时编译器 (JIT), PyPyJIT 的前身)

【讨论】:

    【解决方案3】:

    最接近 Python 的等价物是 cythonpypy

    【讨论】:

      【解决方案4】:

      有,有点。

      1. Cython——我还没有机会完全探索它,但据我所知,它直接编译Python代码。你也可以使用(可选的)静态类型——它不再是普通的 Python,但如果你做得对,它可以提高速度。另请参阅:Can Cython compile to an EXE?

      2. 这可能是因为我对 Lisp 没有太多经验,但我不完全确定您所说的“创建像 Lisp 编译器一样的 Python 编译器”是什么意思。

      【讨论】:

      • 我在某处读到有一个 LISP 编译器,LISP 程序的性能与 C++ 相当。我错了吗? LISP 编译器可以创建原生可执行文件吗?
      • 啊,我误解了你原来的问题。是的,一些 Lisp 编译器可以创建本机可执行文件。 Cython(我在上面链接)做了几乎同样的事情。
      【解决方案5】:

      Numba 是基于 NumPy 和 LLVM 的较新的 Python 编译器,它回退到 CPython。

      【讨论】:

        猜你喜欢
        • 2012-11-06
        • 2011-01-29
        • 1970-01-01
        • 1970-01-01
        • 2010-10-27
        • 2021-03-22
        • 2016-07-21
        • 2021-10-11
        • 1970-01-01
        相关资源
        最近更新 更多