有没有可能编译一个用 Python 编写的程序?

我是新来的 Python。我想知道是否有可能编译一个用 Python 编写的程序。

有没有可能把 Python 脚本转换成一些低级的编程语言,然后再把它们编译成二进制代码?

正在考虑使用 Python 编写代码的开发人员可能希望保持这种可能性,以便以后能够使用二进制发行版。

175982 次浏览

我认为 编译 Python 代码会是一个很好的起点:

Python 源代码是自动的 编译成 Python 字节码的 CPython 解释器。编译的代码是 通常储存在 PYC (或 PYO)档案内, 当源头是 更新,或在其他必要的时候。

把节目分发给那些 已经安装了 Python,就可以 提交 PY 档案或 PYC 在最近的版本中,您可以 还要创建一个包含 PY 或 PYC 文件,并使用小 “引导脚本”添加该 ZIP 存档到路径。

将 Python 程序“编译”为 使用捆绑工具,例如 作为戈登 · 麦克米伦的安装者 (备选下载) (跨平台) ,托马斯海勒的 Py2exe (Windows) ,Anthony Tuininga 的 (跨平台) ,或者叫 Bob Ippolito 的 py2app (Mac) 将模块和数据文件放入 某种归档文件,并创建 自动设置 东西,以便模块被导入 有些工具可以 将归档文件嵌入到可执行文件中 本身。

在运行 python 时动态编译。

通过(linux)运行. py 文件: python abc.py

Python 是一个直译语言,所以你不需要编译你的脚本来让它们运行。最简单的运行方式是导航到终端中的文件夹并执行“ python somfile.py”。这取决于是否从 巨蟒网站。安装了 python

您可以编译 Python 应用程序,但是这通常不是新开发人员最初需要做的事情。如果这就是你要找的,那就看一眼 Py2exe。这将使用 Python 脚本并将其打包为可执行文件,就像基于 Windows 的计算机上的任何程序一样。还可以使用 Python 编译单个文件,如 这个网站。的“将 Python 模块编译为字节码”部分所述

你不必编译它。首先使用它(导入) ,它由 CPython 解释器编译。但是如果您真的想要编译,有几个选项。

编译为 exe

或者2编译一个特定的 * . py 文件,你可以直接使用

import py_compile
py_compile.compile("yourpythoncode.py")

Python 作为一种动态语言,不能像 C 或 COBOL 那样静态地“编译”成机器代码。您总是需要一个解释器来执行代码,根据语言中的定义,这是一个动态操作。

你可以“翻译”字节码中的源代码,这只是一个中间过程,解释器这样做,以加快代码的负载。它转换文本文件,与注释,空格,字符,如’如果’,’定义’,’在’等二进制代码,但后面的操作是完全相同的,在 Python 中,而不是在机器代码或任何其他语言。这就是它存储的地方。Pyc 文件,并且它在架构之间也是可移植的。

也许您需要的不是“编译”代码(这是不可能的) ,而是“嵌入”一个解释器(在正确的体系结构中)的代码,以允许运行代码而不需要外部安装解释器。要做到这一点,您可以使用所有这些工具,如 py2exe 或 cx _ Frame。

- 也许我有点迂腐了-P

如果您真的想要,您总是可以使用 Cython编译。这将生成 C 代码,然后您可以使用任何 C 编译器(如 GCC)编译这些代码。

为了避免冗余,我不在这里重复我的答案。

请参阅我的另一个答案 这里。(注意答案只包括编译到 Python 字节码。)