是否可以本机编译Python(超出pyc字节代码)?

时间:2008-10-15 15:02:09

标签: python module compilation

我想知道是否可以从Python脚本创建可执行模块。我需要拥有Python脚本的最高性能和灵活性,而无需在Python环境中运行。我会使用此代码加载按需用户模块以自定义我的应用程序。

4 个答案:

答案 0 :(得分:14)

  • pyrex将python编译为源代码到python扩展模块
  • rpython允许你编译python,对C,LLVM,.Net等各种后端有一些限制。
  • 还有shed-skin将python转换为C ++,但我不能说它是否有用。
  • PyPy实现了一个JIT编译器,它试图通过将运行时运行的部分转换为机器代码来优化运行时,如果您为可能是可行路径的PyPy解释器编写的话。
  • 在PyPy中处理JIT的同一作者之前编写了psyco,它在CPython解释器中优化了python。

答案 1 :(得分:7)

你可以使用类似py2exe的东西将你的python脚本编译成exe,或者使用Freeze来编译linux二进制文件。

请参阅:How can I create a directly-executable cross-platform GUI app using Python?

答案 2 :(得分:2)

我使用Cython取得了很大成功,{{3}}基于并扩展了pyrex:

  

Cython是一种语言   为Python编写C扩展   语言就像Python本身一样简单。   Cython基于众所周知的   Pyrex,但支持更多的前沿   功能和优化。

     

Cython语言非常接近   Python语言,但Cython   另外支持调用C.   函数和声明C类型   变量和类属性。这个   允许编译器生成非常   来自Cython代码的高效C代码。

     

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

答案 3 :(得分:1)

我认为您可以使用jython将python编译为Java字节码,然后使用GCJ进行编译。