我刚接触Python编程语言。我想知道是否有可能将Python程序编译成二进制代码。
是否可以将Python脚本转换为一些较低级别的编程语言,然后再将其编译为二进制代码?
一个考虑使用Python编码的开发人员可能希望保持未来能够进行二进制分发的可能性。
我刚接触Python编程语言。我想知道是否有可能将Python程序编译成二进制代码。
是否可以将Python脚本转换为一些较低级别的编程语言,然后再将其编译为二进制代码?
一个考虑使用Python编码的开发人员可能希望保持未来能够进行二进制分发的可能性。
我认为编译Python代码是一个很好的起点:
Python源代码会被CPython解释器自动编译成Python字节码。编译后的代码通常存储在PYC(或PYO)文件中,并且在更新源代码或其他必要情况下,会重新生成。
要向已经安装了Python的人分发程序,可以发送PY文件或PYC文件。在最近的版本中,您还可以创建包含PY或PYC文件的ZIP归档文件,并使用小型“引导脚本”将该ZIP归档文件添加到路径中。
要将Python程序“编译”成可执行文件,请使用捆绑工具,例如Gordon McMillan的安装程序(备用下载)(跨平台),Thomas Heller的py2exe(Windows),Anthony Tuininga的cx_Freeze(跨平台)或Bob Ippolito的py2app(Mac)。这些工具将您的模块和数据文件放入某种存档文件中,并创建一个可执行文件,该文件会自动设置事物,以便从该存档中导入模块。一些工具可以将存档嵌入可执行文件中。
Python 作为一种动态语言,不能像 C 或 COBOL 那样静态地被“编译”成机器代码。您总是需要一个解释器来执行代码,这在语言的定义中是一个动态操作。
您可以将源代码“翻译”成字节码,这只是解释器执行的一种中间过程,用于加快代码的加载速度。它将包含注释、空格、像 "if"、"def"、"in" 等单词的文本文件转换为二进制代码,但其背后的操作在 Python 中是完全相同的,而不是在机器代码或任何其他语言中。这就是存储在 .pyc 文件中的内容,它也可以在不同架构之间进行移植。
您可能需要的不是“编译”代码(这是不可能的),而是将解释器(在正确的架构中)与代码“嵌入”在一起,以允许无需外部安装解释器即可运行代码。为此,您可以使用 py2exe 或 cx_Freeze 等所有这些工具。
也许我有点拘谨 :-P
Python在运行时即时编译。
在Linux上运行.py文件的命令为:python abc.py
gcc
或者你的代码依赖的任何库;它将会是自包含在可执行文件中的。 - Daniel R. Livingston