我是新来的 Python。我想知道是否有可能编译一个用 Python 编写的程序。
有没有可能把 Python 脚本转换成一些低级的编程语言,然后再把它们编译成二进制代码?
正在考虑使用 Python 编写代码的开发人员可能希望保持这种可能性,以便以后能够使用二进制发行版。
我认为 编译 Python 代码会是一个很好的起点:
Python 源代码是自动的 编译成 Python 字节码的 CPython 解释器。编译的代码是 通常储存在 PYC (或 PYO)档案内, 当源头是 更新,或在其他必要的时候。 把节目分发给那些 已经安装了 Python,就可以 提交 PY 档案或 PYC 在最近的版本中,您可以 还要创建一个包含 PY 或 PYC 文件,并使用小 “引导脚本”添加该 ZIP 存档到路径。 将 Python 程序“编译”为 使用捆绑工具,例如 作为戈登 · 麦克米伦的安装者 (备选下载) (跨平台) ,托马斯海勒的 Py2exe (Windows) ,Anthony Tuininga 的 (跨平台) ,或者叫 Bob Ippolito 的 py2app (Mac) 将模块和数据文件放入 某种归档文件,并创建 自动设置 东西,以便模块被导入 有些工具可以 将归档文件嵌入到可执行文件中 本身。
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 字节码。)