python 编译器

15 投票
6 回答
23622 浏览
提问于 2025-04-17 09:39

我有几个关于Python的问题

  1. 为什么没有Python编译器可以生成本地代码?我找到了一些工具,比如py2exe,但它们只是把一个Python解释器打包在里面,所以最后还是由解释器来执行代码。

  2. 难道不可能像LISP编译器那样创建一个Python编译器,这样代码执行起来会更快(相比C++)吗?

谢谢,
Vinay

6 个回答

2

有点类似的东西。

  1. 你可以看看 Cython -- 我还没机会深入研究它,但据我了解,它可以直接把Python代码编译成机器能理解的代码。你还可以选择使用静态类型(这是一种提前定义变量类型的方式)——这样就不是普通的Python了,但如果用得当,可以让程序运行得更快。另外,看看这个链接:Cython能编译成EXE文件吗?

  2. 可能是因为我对Lisp了解不多,所以我不太明白你说的“像Lisp编译器那样创建一个Python编译器”是什么意思。

9

问题 1:

  • Nuitka(把Python代码直接转换成C++)
  • ShedSkin(将静态类型的Python代码编译成C++,可以生成独立程序或扩展模块)
  • Cython(从Python的超集生成C扩展。Cython源自Pyrex

问题 2:
我不太确定我理解得对不对,但也许答案是:

  • psyco(一个为Python代码提供即时编译的工具,算是PyPy JIT的前身)
17

Nuitka – Python 编译器

它是什么

我觉得应该可以为 Python 使用一个编译器,应该有比 CPython 现有的字节码更好的编译器。这就是 Nuitka 的目的。

它是我尝试将纯 Python 代码转换成机器代码(通过 C++ 编译器),而不是转换成字节码,同时在运行时使用 libpython。然后,我还会在编译时和运行时进行分析,如果满足某些条件,就可以更快地执行代码。

撰写回答