是否有可能本机编译Python(超越pyc字节码)?

问题描述:

我想知道是否可以从Python脚本创建可执行模块。我需要具有Python脚本的最高性能和灵活性,而无需在Python环境中运行。我将使用此代码加载按需用户模块来自定义我的应用程序。是否有可能本机编译Python(超越pyc字节码)?

  • pyrex,编译蟒蛇像源Python扩展模块
  • rpython它允许你编译蟒蛇有一些限制各种后端像C,LLVM,净等
  • 还有shed-skin它将python转换为C++,但我不能说它是否有用。
  • PyPy实现了JIT编译器,它试图通过翻译什么的在运行时运行的机器代码,如果你写的PyPy解释这可能是一个可行的路径件以优化运行。
  • 在PyPy中工作JIT的作者之前曾写过psyco,它在CPython解释器中优化了python。

你可以使用类似py2exe的东西来编译你的python脚本到exe文件,或者Freeze for linux binary。

看到:How can I create a directly-executable cross-platform GUI app using Python?

+0

@Howler,py2exe不会提供OP所要求的大部分内容。该代码仍然Python运行时内运行(尽管更名),并不会自动运行任何比脚本更快) @大卫:你可能要考虑重写主应用程序的C/C++和扩展W/Python的。 – technomalogical 2008-10-15 17:23:33

+0

或者,而不是重写主应用程序,只需找到热点并将它们用C/C++编写为Python扩展。 – 2008-10-16 08:27:47

我想你可以使用jython编译python到Java字节码,然后用GCJ编译它。

我已经使用Cython很多成功的,它是基于并延伸耐热玻璃:

用Cython是使 写C扩展了Python语言 容易,因为Python本身的语言。 用Cython是基于公知的Pyrex ,但支持更多的切削刃 功能和优化。

的用Cython语言非常接近 Python语言,但用Cython 还支持调用C 功能和 变量和类属性声明的C类型。这个 允许编译器从Cython代码生成非常有效的C代码。

这使得用Cython用于包裹外部C库, 并为加快 Python代码执行快速的C模块的理想语言 。